Inngest runs durable functions: background jobs, workflows, and AI agents written as ordinary code, where each step is retried on failure and its result persisted so a function can run for months and recover from crashes. It takes the place of separate queues, state management, and schedulers.
You write functions with a language SDK and deploy them to your own infrastructure. The Inngest Platform or a self-hosted Inngest server receives triggering events and invokes those functions over HTTPS. A local Dev Server mirrors production behavior and serves a dashboard of runs.
An Inngest function has three parts: triggers (events, cron schedules, or webhooks), flow control (how runs are queued and executed), and steps (the retryable units of work). Because Inngest executes every step, it traces each job, agent, and event from trigger to completion without extra instrumentation, and the hosted platform adds sandboxes and A/B scoring of agent variants on the same triggers and data.
The self-hosted server is made of an Event API, an event stream, a runner that schedules, resumes, and cancels function runs, a multi-tenant queue, an executor, a state store, a GraphQL and REST API, and a dashboard UI.
Features
- Durable steps: each step is retried automatically on error and its output stored, so a function resumes from the last completed step
- Triggers: events, cron schedules, and webhook events start functions
- Flow control: concurrency (including per-key limits), throttling, debouncing, rate limiting, prioritization, and batching
- Waits and cancellation: functions pause on waitForEvent until a matching event arrives, and cancelOn expressions stop running functions
- Event replay: ingested events are stored for historical record and future replay
- Observability: traces every background job, agent, and event from trigger to completion
- Language SDKs: TypeScript and JavaScript, Python, Go, and Kotlin or Java
- Dev Server: a local server with a dashboard that matches production behavior
- Cloud sandboxes: run a new prompt, model, or code path in an isolated sandbox on the same triggers and data before shipping it (experimental in local development, paid plans)
- Hosted or self-hosted: use the Inngest Platform or run your own Inngest server
