{"id":42632,"date":"2019-05-20T07:22:27","date_gmt":"2019-05-20T05:22:27","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=42632"},"modified":"2019-05-20T07:22:36","modified_gmt":"2019-05-20T05:22:36","slug":"faast-js-serverless-batch-computing-made-simple","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/","title":{"rendered":"faast.js &#8211; serverless batch computing made simple"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"308\" data-attachment-id=\"42633\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/faast-js\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast.js.png?fit=600%2C308&amp;ssl=1\" data-orig-size=\"600,308\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"faast.js\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast.js.png?fit=600%2C308&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast.js.png?resize=600%2C308&#038;ssl=1\" alt=\"\" class=\"wp-image-42633\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast.js.png?w=600&amp;ssl=1 600w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast.js.png?resize=500%2C257&amp;ssl=1 500w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/faastjs.org\/\">faast.js<\/a> is a new framework that makes writing serverless functions super easy.  Read more about it in <a href=\"https:\/\/faastjs.org\/blog\/2019\/05\/02\/introducting-faastjs\">this introductory blog post<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale down to eliminate costs when not being used. Even better, all infrastructure would be managed by the cloud provider. It seemed like a dream come true: a giant computer that could be as big as needed for the job at hand, yet could be rented in 100ms increments.<br>But trying to build this on AWS Lambda was challenging:<br>* <strong>Complex setup.<\/strong>\u00a0Lambda throws you into the deep end with IAM roles, permissions, command line tools, web consoles, and special calling conventions. Lambda and other FaaS are oriented towards an event-based processing model, and not optimized for batch processing.<br>* <strong>Primitive package dependency support.<\/strong>\u00a0Everything has to be packaged up manually in a zip file. Every change to the code or tests requires a manual re-deploy.<br>* <strong>Native packages.<\/strong>\u00a0Common testing tools like puppeteer are supported only if they are compiled specially for Lambda.<br>* <strong>Persistent infrastructure.<\/strong>\u00a0Logs, queues, and functions are left behind in the cloud after a job is complete. These incur costs and count towards service limits, so they need to be managed or removed, creating an unnecessary ops burden.<br>* <strong>Developer productivity.<\/strong>\u00a0Debugging, high quality editor support, and other basic productivity tools are awkward or missing from serverless function development tooling.<br>Faast.js was born to solve these and many other practical problems, to make serverless batch processing as simple as possible.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">And here&#8217;s the quick visualization of the architecture for you.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"463\" data-attachment-id=\"42634\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/faast-architecture-aws\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast-architecture-aws.png?fit=717%2C503&amp;ssl=1\" data-orig-size=\"717,503\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"faast-architecture-aws\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast-architecture-aws.png?fit=660%2C463&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast-architecture-aws.png?resize=660%2C463&#038;ssl=1\" alt=\"\" class=\"wp-image-42634\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast-architecture-aws.png?w=717&amp;ssl=1 717w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast-architecture-aws.png?resize=500%2C351&amp;ssl=1 500w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">faast.js &#8211; serverless batch computing made simple<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"faast.js - serverless batch computing made simple #WebDev #hosting #JavaScript #Amazon #AWS #cloud","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,133,62,1334],"tags":[3270,3619,2366,1139,1330,2289],"keyring_services":[],"class_list":["post-42632","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-sysadmin","category-technology","category-web-work","tag-amazon-aws","tag-amazon-lambda","tag-cloud-computing","tag-javascript","tag-web-development","tag-web-hosting"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-05-20T05:22:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-05-20T05:22:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#blogposting\",\"name\":\"faast.js \\u2013 serverless batch computing made simple - Leonid Mamchenkov\",\"headline\":\"faast.js &#8211; serverless batch computing made simple\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/faast.js.png?fit=600%2C308&ssl=1\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#articleImage\",\"width\":600,\"height\":308},\"datePublished\":\"2019-05-20T07:22:27+02:00\",\"dateModified\":\"2019-05-20T07:22:36+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#webpage\"},\"articleSection\":\"All, Programming, Sysadmin, Technology, Web work, Amazon AWS, Amazon Lambda, cloud computing, JavaScript, web development, web hosting\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#listItem\",\"name\":\"faast.js &#8211; serverless batch computing made simple\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#listItem\",\"position\":4,\"name\":\"faast.js &#8211; serverless batch computing made simple\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/\",\"name\":\"faast.js \\u2013 serverless batch computing made simple - Leonid Mamchenkov\",\"description\":\"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/05\\\/20\\\/faast-js-serverless-batch-computing-made-simple\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2019-05-20T07:22:27+02:00\",\"dateModified\":\"2019-05-20T07:22:36+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov","description":"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#blogposting","name":"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov","headline":"faast.js &#8211; serverless batch computing made simple","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/faast.js.png?fit=600%2C308&ssl=1","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#articleImage","width":600,"height":308},"datePublished":"2019-05-20T07:22:27+02:00","dateModified":"2019-05-20T07:22:36+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#webpage"},"articleSection":"All, Programming, Sysadmin, Technology, Web work, Amazon AWS, Amazon Lambda, cloud computing, JavaScript, web development, web hosting"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#listItem","name":"faast.js &#8211; serverless batch computing made simple"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#listItem","position":4,"name":"faast.js &#8211; serverless batch computing made simple","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/","name":"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov","description":"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2019-05-20T07:22:27+02:00","dateModified":"2019-05-20T07:22:36+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov","og:description":"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale","og:url":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2019-05-20T05:22:27+00:00","article:modified_time":"2019-05-20T05:22:36+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"faast.js \u2013 serverless batch computing made simple - Leonid Mamchenkov","twitter:description":"faast.js is a new framework that makes writing serverless functions super easy. Read more about it in this introductory blog post: Faast.js started as a side project to solve the problem of large scale software testing. Serverless functions seemed like a good fit because they could scale up to perform work in parallel, then scale","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"42632","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 05:54:46","updated":"2026-01-15 14:12:46","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tfaast.js \u2013 serverless batch computing made simple\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"faast.js &#8211; serverless batch computing made simple","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/20\/faast-js-serverless-batch-computing-made-simple\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":29173,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/04\/serverless-php-on-aws-lambda\/","url_meta":{"origin":42632,"position":0},"title":"Serverless PHP on AWS Lambda","author":"Leonid Mamchenkov","date":"January 4, 2019","format":false,"excerpt":"For all those of you who want to try out Amazon Lambda with PHP, here's a quick and simple guide as to how to set it up: Serverless PHP on AWS Lambda. This is some pretty exciting stuff!","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/2019sls-deploy.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/2019sls-deploy.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/2019sls-deploy.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/2019sls-deploy.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/2019sls-deploy.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":39261,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/19\/building-serverless-apps-with-components-from-the-aws-serverless-application-repository\/","url_meta":{"origin":42632,"position":1},"title":"Building serverless apps with components from the AWS Serverless Application Repository","author":"Leonid Mamchenkov","date":"March 19, 2019","format":false,"excerpt":"Last year, after attending the AWSome Day in Athens, I had a strong feeling that I'll hear more and more about serverless applications and Lambda functions in the coming months. Turns out I wasn't wrong. As infrastructure moves from large dedicated servers through virtual machines to containers, so does the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":36094,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/25\/how-to-build-a-serverless-ci-cd-pipeline-on-aws\/","url_meta":{"origin":42632,"position":2},"title":"How To Build a Serverless CI\/CD Pipeline On AWS","author":"Leonid Mamchenkov","date":"February 25, 2019","format":false,"excerpt":"\"How To Build a Serverless CI\/CD Pipeline On AWS\" is a nice guide to some of the newer Amazon AWS services, targeted at developers and DevOps. It shows how to tie together the following: Amazon EC2 (server instances)Docker (containers)Amazon ECR (Elastic Container Registry)Amazon S3 (storage)Amazon IAM (Identity and Access Management)Amazon\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":28928,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/11\/12\/awsome-day-athens-2018\/","url_meta":{"origin":42632,"position":3},"title":"AWSome Day Athens 2018","author":"Leonid Mamchenkov","date":"November 12, 2018","format":false,"excerpt":"Last week I've attended the AWSome Day Athens 2018\u00a0(huge thanks to Qobo for the opportunity).\u00a0 There aren't that many technology events in Cyprus, so I'm constantly on the lookout for events in Europe. AWSome Day Athens is part of the Amazon's AWSome Day Global Series, which are one day events\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/11\/AWSome-Day-Athens-430x500.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26286,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/07\/25\/serverlessconf-2016-new-york-city-a-personal-report\/","url_meta":{"origin":42632,"position":4},"title":"Serverlessconf 2016 \u2013 New York City: a personal report","author":"Leonid Mamchenkov","date":"July 25, 2016","format":false,"excerpt":"Serverlessconf 2016 \u2013 New York City: a personal report - is a fascinating read. \u00a0Let me get you hooked: This event left me with the impression (or the confirmation) that there are two paces and speeds at which people are moving. There is the so called \u201clegacy\u201d pace. This is\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29122,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/20\/a-serverless-sequence-diagram\/","url_meta":{"origin":42632,"position":5},"title":"A Serverless Sequence Diagram","author":"Leonid Mamchenkov","date":"December 20, 2018","format":false,"excerpt":"Paul Hammant has a quick and simple blog post illustrating the request-response sequence in the web application on a serverless infrastructure.\u00a0 I find it quite useful as a reference, when explaining serverless to people who are considering it for the first time. This stuff and the abandonment of names:ports in\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/serverless.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/serverless.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/serverless.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/serverless.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/42632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=42632"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/42632\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=42632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=42632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=42632"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=42632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}