Inngest
Inngest is an open source durable execution engine for background jobs and workflows — a self-hostable alternative to AWS Step Functions that runs reliable, long-running functions as plain code, retrying failed steps and resuming exactly where they left off, without you running a separate queue.
What is Inngest?
Inngest is an open source durable execution engine that runs background jobs, scheduled tasks, and multi-step workflows as ordinary functions in your own code. It records every completed step and memoizes the result, so on a retry it skips finished work and resumes exactly where it left off after a crash or a failed API call. Unlike systems that need worker processes polling a cluster, Inngest invokes your existing app over HTTP when an event or schedule fires. The server and CLI are written in Go; the SDKs cover TypeScript/JavaScript, Python, Go, and Kotlin/Java.
What is Inngest best for?
Teams that want reliable background jobs and long-running workflows without standing up and babysitting their own queue. It fits well for serverless and container apps, AI agent pipelines that make non-deterministic LLM calls, order and payment flows, scheduled jobs, and event-driven fan-out — anywhere you need retries, flow control, and “run this later” without wiring up Redis, workers, and custom error handling yourself.
What can Inngest do?
- Run durable functions made of steps that retry independently and resume from the last completed step
- Trigger work from events, cron schedules, or webhooks, and fan a single event out to many functions
- Wait for an event to pause a function for minutes or months, then continue automatically
- Apply built-in flow control: concurrency limits, throttling, rate limiting, debouncing, batching, and prioritization
- Enforce idempotency to prevent duplicate runs, and replay past runs against new code
- Develop locally against a dev server (at
localhost:8288) with a UI that mirrors production - Write functions in TypeScript/JavaScript, Python, Go, or Kotlin/Java SDKs
Where does Inngest fall short?
- The core license is SSPL, not a standard OSI-approved license. The server and CLI are released under the Server Side Public License, with a delayed-open-source clause that re-licenses each release as Apache 2.0 only after a set period. The SSPL restricts offering Inngest itself as a managed service, so it is “source available” more than freely permissive — a real difference from an MIT-licensed engine like Temporal.
- The HTTP execution model assumes your app is reachable. Inngest calls your functions over HTTP rather than running workers that poll it, so your deployment must be network-accessible to the executor. That is elegant for serverless and web apps but an awkward fit for purely internal batch code with no HTTP surface.
- Self-hosting trails the cloud in maturity. Self-hosting is officially supported, but some advanced observability and reliability features are added on top by the managed cloud, and a production self-host means running Postgres and Redis and sizing them for fast-growing event history.
Is Inngest free?
Yes — the core engine is open source and free to self-host; you only pay for the Postgres, Redis, and compute it runs on. Inngest also sells a managed cloud with a free Hobby tier (50k executions and 500k events ingested per month, no card required), a Pro plan starting at $99/month (1M executions included, with pay-as-you-go beyond), and custom Enterprise pricing. The cloud adds managed infrastructure, observability, and reliability on top of the engine you can otherwise run yourself.
What does Inngest replace?
Inngest is a self-hosted alternative to AWS Step Functions, Azure Durable Functions, and Google Cloud Workflows — the cloud providers’ serverless orchestrators — but your logic stays as portable code you can run locally and on any platform instead of being tied to one vendor’s runtime. It also replaces the homegrown stack of a message queue plus workers, retry logic, and cron that teams assemble by hand. For code-first durable execution it overlaps with Temporal; Inngest leans event-driven and HTTP-invoked, while Temporal uses deterministic replay and polling workers.
FAQ
Is Inngest open source? Partly. The server and CLI are source-available under the SSPL, with each release converting to Apache 2.0 after a delay; all SDKs are Apache 2.0. You can self-host the whole engine at no license cost, but the SSPL restricts reselling it as a managed service.
Can I self-host Inngest for free? Yes. The engine runs as a single Go binary — SQLite works for local use, and a production self-host uses your own Postgres and Redis. You pay only for that infrastructure, not for the software.
Is Inngest a good AWS Step Functions alternative? For teams that want code-first workflows, local development, and no cloud lock-in, yes. If your workload lives entirely in AWS and you prefer a visual state-machine builder that Amazon fully manages, Step Functions may fit better.
What do I need to run Inngest? The Inngest binary plus a place for your functions to be reached over HTTP. Local development needs only the bundled dev server; production self-hosting adds Postgres for persistence and Redis for queue and state management.