[{"data":1,"prerenderedAt":298},["ShallowReactive",2],{"project-19811093":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":41,"post_text":44,"what":45,"said":83,"maker_in_thread":183,"shape":193,"grid":196,"attempts":260,"same_week":261,"maker_shows":37,"maker_hidden":290,"reader_version":291,"card":292},"19811093","Faast.js","Serverless Batch Computing Made Simple","title","Show HN: Faast.js – Serverless Batch Computing Made Simple","https:\u002F\u002Ffaastjs.org","faastjs.org","achou",1556822307,2019,202,31,188,2195,9,"notable","infrastructure","serverless batch computing","library",[24,25,26,27],"serverless","batch processing","aws lambda","serverless functions","loved",0.309,{"positive":31,"neutral":32,"mixed":33,"critical":33},6,11,0,17,{"pricing":36,"idea":38,"execution":40},{"positive":37,"critical":33},1,{"positive":39,"critical":33},4,{"positive":33,"critical":33},[33,42,33,43,43,42,33,42,42,42,33,43,33,43,33,43,33,42,43,33,42,33,42,33,42,33,42,42,33,33,33],3,5,null,{"problem":46,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":53,"openness":81,"stage":82,"team_size":82},{"value":47,"source":48,"evidence":49},"Running batch processing jobs on serverless platforms with easy deployment","maker",[50],{"id":51,"by":11,"text":52},"19811213","Hi everyone, faast.js is a library that allows you to use serverless to run batch processing jobs. It makes it super easy to run regular functions as serverless functions. This…",[54,63,69],{"value":55,"source":56,"evidence":57},"JavaScript","inferred",[58,59],{"id":51,"by":11,"text":52},{"id":60,"by":61,"text":62},"19813577","BrandiATMuhkuh","Wow that's awesome. I'll have a look at it ASAP. We have actually just converted our lambda code to run on a multi core machine + much wiser algorithms to massively speed up the…",{"value":64,"source":56,"evidence":65},"TypeScript",[66],{"id":67,"by":11,"text":68},"19812716","Indeed, I've put together a simple example of using puppeteer with faast.js in this repo: https:\u002F\u002Fgithub.com\u002Ffaastjs\u002Fexamples\u002Ftree\u002Fmaster\u002Faws-puppeteer-ts",{"value":70,"source":71,"evidence":72},"AWS Lambda","commenter",[73,77],{"id":74,"by":75,"text":76},"19811501","gregmac","From what I can tell, it's the invocation model and deployment that is unique here? You invoke faast from your local machine (or build server, or cron job, whatever), and in turn…",{"id":78,"by":79,"text":80},"19813048","teej","To serve as a data point, I effectively built an in-house version of this a few years ago built on top of AWS Lambda, all in Python. The \"entry point\" code or orchestration code…","open_source","unknown",{"praise":84,"objections":106,"requests":118,"questions":144,"alternatives":157},[85,92,99],{"value":86,"source":71,"evidence":87},"Cost estimate feature is useful",[88],{"id":89,"by":90,"text":91},"19811421","CoreFailure","This looks great! I have an upcoming processing-intesive project I hope to test this out on soon. I especially like the cost estimate feature, that isn't something I've seen in…",{"value":93,"source":71,"evidence":94},"Simplifies serverless batch processing and deployment",[95,96],{"id":74,"by":75,"text":76},{"id":97,"by":61,"text":98},"19812194","Love what you did! We resently were exactly in a situation where we had to do heavy processing of ~4000 items each running between 1-10minutes. To speed the process up we ran it…",{"value":100,"source":71,"evidence":101},"Good idea for unified interface across serverless vendors",[102],{"id":103,"by":104,"text":105},"19811241","dongxu","Very interesting project, the problem with Serverless service provided by different public cloud vendors is that programming and API are not uniform. I think Faast.js is on the…",[107,114],{"value":108,"source":71,"evidence":109},"Serverless pricing may not suit long-running batch jobs",[110],{"id":111,"by":112,"text":113},"19811269","m00dy","Hi, Do you think serverless pricing model contradicts with batch operations ? I think that you normally pay for duration of tasks and ram usage etc. Batch jobs are supposed to be…",{"value":115,"source":71,"evidence":116},"Orchestrator should not run on serverless",[117],{"id":74,"by":75,"text":76},[119,126,140],{"value":120,"source":71,"evidence":121},"Add Azure support",[122],{"id":123,"by":124,"text":125},"19814920","netofeverythin3","Very cool. Worth checking out a similar project Durable Functions. However those orchestrations can run in serverless and can scale to zero during the “waiting for other tasks”…",{"value":127,"source":71,"evidence":128},"Support functions written in other languages such as Python or Java",[129,133,137],{"id":130,"by":131,"text":132},"19812293","mring33621","This is neat, but would be more useful if it could deploy cloud functions made in language {x} and provide local js proxies for them.",{"id":134,"by":135,"text":136},"19812444","linuxdude314","Python is a good place to start.",{"id":138,"by":131,"text":139},"19813527","Honestly, I would want java. Probably would have to provide a mapping spec file (like IDL) to help generate the mediation code between the local proxies and the deployed functions.",{"value":141,"source":71,"evidence":142},"Documentation on deploying the orchestration code in production",[143],{"id":74,"by":75,"text":76},[145,153],{"value":146,"source":71,"evidence":147},"How are serialization and retries handled",[148,149],{"id":60,"by":61,"text":62},{"id":150,"by":151,"text":152},"19812562","sourc3","This is very neat! Last year I had to essentially do this on GCP and relied on a very similar implementation. Everyone was surprised to see JS being used for data processing but…",{"value":154,"source":71,"evidence":155},"Does serverless pricing make sense for batch work",[156],{"id":111,"by":112,"text":113},[158,165,172,176],{"value":159,"source":71,"evidence":160},"Serverless framework",[161],{"id":162,"by":163,"text":164},"19811386","bdcravens","Doesn't Serverless (the framework, not the concept) abstract this away? https:\u002F\u002Fserverless.com\u002Fframework\u002Fdocs\u002Fproviders\u002F (not familiar enough with that framework to form an…",{"value":166,"source":71,"evidence":167},"Pywren",[168],{"id":169,"by":170,"text":171},"19813378","adeora","Pywren (http:\u002F\u002Fpywren.io\u002F) seems to be basically this project, but in Python",{"value":173,"source":71,"evidence":174},"Azure Durable Functions",[175],{"id":123,"by":124,"text":125},{"value":177,"source":71,"evidence":178},"RPyC",[179],{"id":180,"by":181,"text":182},"19815691","dead_mall","Looks interesting. The concept reminds me of RPyC",{"comments":184,"answered":39,"key":185},10,[186,187,190],{"id":51,"text":52},{"id":188,"text":189},"19811342","It depends on the specific use case. Some of the use cases I envision have sharp spikes in demand, and serverless can provide better service and price\u002Fperformance. Part of…",{"id":191,"text":192},"19812425","You're basically correct, and thanks for the suggestion to add documentation about deployment in production. One special case is if your functions return a lot of data; outbound…",{"commenters":194,"max_depth":43,"maker_replies":184,"first_comment_mins":32,"lifespan_hours":195},19,284,[197,199,201,202,204,208,210,212,215,216,217,220,223,225,229,231,232,234,237,238,241,243,245,246,248,249,250,251,252,254,258],[51,33,33,198,11,37],"maker\u002Fneutral\u002Fidea",[111,33,42,200,112,33],"project\u002Fneutral\u002Fpricing",[188,33,33,200,11,37],[89,33,43,203,90,33],"project\u002Fpositive\u002Fpricing",[205,33,43,206,207,33],"19811946","project\u002Fpositive\u002Fidea","pushtheenvelope",[74,37,42,209,75,33],"project\u002Fneutral\u002Fidea",[191,37,33,211,11,37],"project\u002Fneutral\u002Fperformance",[213,37,42,209,214,33],"19812757","penagwin",[78,37,42,209,79,33],[123,37,42,209,124,33],[218,37,33,219,11,37],"19815349","maker\u002Fneutral\u002Fnone",[221,37,43,222,124,33],"19815855","maker\u002Fpositive\u002Fnone",[224,37,33,219,11,37],"19819890",[226,227,43,206,228,33],"19812310",2,"asadlionpk",[67,227,33,230,11,37],"project\u002Fpositive\u002Fdocs",[103,42,43,206,104,33],[162,42,33,233,163,33],"other\u002Fneutral\u002Fnone",[235,42,42,209,236,33],"19909987","zaq_xsw",[97,39,43,206,61,33],[239,39,33,240,11,37],"19812359","project\u002Fpositive\u002Fperformance",[60,39,42,242,61,33],"project\u002Fneutral\u002Fexecution",[244,39,33,242,11,37],"19813669",[130,43,42,209,131,33],[247,43,33,219,11,37],"19812370",[134,43,42,209,135,33],[169,43,33,233,170,33],[138,43,42,209,131,33],[150,31,42,242,151,33],[253,31,33,242,11,37],"19812754",[255,256,33,233,257,33],"19813496",7,"heathermiller",[180,259,33,233,181,33],8,[],[262,267,271,276,280,285],{"id":263,"name":264,"points":265,"category":266},"19858015","CSSFX",595,"dev_tools",{"id":268,"name":269,"points":270,"category":20},"19827336","zfsp",411,{"id":272,"name":273,"points":274,"category":275},"19810504","Risp",314,"languages",{"id":277,"name":278,"points":279,"category":275},"19862748","piet-metal",306,{"id":281,"name":282,"points":283,"category":284},"19847258","Full Help",197,"web_saas",{"id":286,"name":287,"points":288,"category":289},"19856799","RSS Search Engine",192,"data",false,"v2",{"id":293,"name":5,"line":6,"ai":290,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":294,"top":18,"kw":295,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":296,"url":9,"mix":297,"praise":86,"objection":108,"sub":21},19811093,0.31,[24,25,26,27],"0305530333050505035030303033000",[31,32,33,33],1794036577230]