by tonyhb on 9/20/24, 5:33 PM with 51 comments
Inngest is an open-source durable workflow platform that works on any cloud. Durable workflows are stateful, long running step functions written in code, which automatically retry on failure. It abstracts everything about queues, event streams and state for you, letting you focus on code. Some examples of uses: managing stateful AI chained step functions; managing search/rag indexes and data pipelines; integrations and webhooks; billing and payment flows.
Technical details: unlike other solutions, we put lots of effort into designing our SDK’s step.run APIs to make them extremely easy to use — developer experience is the most important thing for us.
We had to design and build our own queueing system to work with multi-tenancy, batching, and debouncing, and we’re iterating on this as we move to FoundationDB. It’s largely all Go in the backend, with a bunch of caching, clickhouse, event streams, and coordination on our behalf. Workers are shared nothing, and run based off of the queue and execution state.
We did a post last year as we iterated on our TS SDK. The product has changed a lot since then and wanted to show the community what’s changed as we reach 1.0:
* Golang, Java, and Python SDKs with cross-language function invocation (across clouds, too)
* Multi-tenant aware flow control (concurrency, throttling, debounce)
* Batching, grouping many events into a single function call
* Much improved dashboard, with tracing and metrics built in
* Advanced recovery tools like function replay, temporary pausing, bulk cancellation (with optional expressions). No more dead letter queues!
* Branch deploys built in, with staging env support out of the box
* Full local testing with production parity
There's a ton on the roadmap, with more launching next week. We’re hiring systems & infra engineers, too — it’s a fun job with lots of challenges!Wanted to say thank you to the HN community for feedback so far! Happy Friday :)
by PeterZaitsev on 9/20/24, 7:57 PM
Looks great but do not appreciate deceptive marketing
by lmeyerov on 9/20/24, 8:50 PM
Afaict, this seems like a more restrictively licensed & less capable alternative to Dagster and Prefect. However, there may be some specific areas it is ahead -- the multitenancy bullet point sounds interesting, for example. Maybe you can share a comparative description?
by davekiss on 9/20/24, 11:21 PM
by tomredman on 9/20/24, 7:48 PM
Congrats on the big one-oh. Question: I’ve been using Rust a lot more lately — does Inngest work natively with Rust? Is there an SDK or another way to use it?
by ljm on 9/20/24, 7:57 PM
My only issue was that the execution of an inngest function wasn't completely intuitive, at least in TS, and you have to think in terms of inngest or, more precisely, the abstraction it is providing. Is it an actor, a step function, an event consumer, a saga? or a combination of some?
When you get used to it it's nice, less overhead than building your own actor model or your own event sources, and really good visibility into what is happening.
by arez on 9/20/24, 7:36 PM
by ykhli on 9/20/24, 9:18 PM
Amazing devEx. Thanks so much for all the work and enabling a local mode too
by ddmkr_conveo on 9/20/24, 7:40 PM
by guilhermecgs on 9/20/24, 8:11 PM
by Shakahs on 9/20/24, 11:45 PM
by darrylcodes on 9/20/24, 9:14 PM
by giovannibonetti on 9/21/24, 1:08 AM
by throwaway743950 on 9/20/24, 10:32 PM
by anthonygrove on 9/20/24, 7:58 PM
by sumukh1 on 9/20/24, 8:31 PM
by jedberg on 9/20/24, 9:11 PM
by tomredman on 9/20/24, 7:50 PM
by SquidJack on 9/21/24, 3:38 PM
by Xiol32 on 9/20/24, 7:59 PM