Show HN: Serverless async back ends for compute-heavy operations (cakework.com)

5 points by theericchen ↗ HN
Hi HN, we’re Jessie and Eric. We’ve been baking away at Cakework (https://www.cakework.com/), which is a way to build async backends without needing to manage cloud infrastructure. Cakework is for operations that take time or more compute, like file processing, report generation, or machine learning.

Devs write backends as Python functions and deploy them with our CLI. They use our client SDKs to make requests, get status, and get processing results. Each request runs with its own CPU and memory parameters in its own microVM, with no timeouts. Devs can query for failures and view logs, inputs, and outputs for each request.

Under the covers, we package and deploy code as Docker containers. We queue each request on a NATs cluster, and spin up a Fly Machine (https://fly.io/docs/machines/) to process it. Cakework is open source (https://github.com/usecakework/cakework) if you want to dig in!

We started exploring Cakework because we liked the idea of serverless for compute-heavy operations, but in practice found that an application made up of wiring together queues, Lambdas, storage, and step functions made iteration really slow. We also didn’t like having to switch away from Lambda when operations ran longer than fifteen minutes.

If you want to give it a whirl, you can follow the quickstart on our website (https://www.cakework.com/), or check out the docs (https://docs.cakework.com/gettingstarted). We’re super excited to share an early build and get everyone’s thoughts, thanks for checking it out!

2 comments

[ 1.3 ms ] story [ 14.1 ms ] thread
This is very useful! I had an application that needed an async backend for a data processing pipeline in GCP but missed the familiarity of AWS Step Function + Lambda. This setup would have been a great replacement for that.
Nice project! I'll take it for a test drive for sure. I can already envision some use cases for it.

Have you got any plans to support Go?

Disclaimer, I work for Synadia (on the NATS team) and with your permission, would like to reference that NATS is used here?