Open source durable execution

Build forthe lonngrun.

If your code runs for minutes or days, it won't run straight through. Wrap functions in steps that automatically retry, pause, and fan out. Scale instantly, without thinking about infra.

Start Free
An Inngest run trace: a step.run function with a flaky step retrying across three attempts before completing, alongside each step's duration.
Before: the tangle of infrastructure (queues, pubsub, idempotency, error handling, capacity management) you have to build yourself.
After: a single step.run() call replacing all that infrastructure.

Durable doesn't have to be hard.

Orchestrating lonng-running code is tough. But you don't need to wrangle a bunch of extra infrastructure to do it. The Inngest SDK is the fastest way to make any code durable and observable by default.

Learn more

What does it mean to be long running?

If you’re building anything that needs to stop, start, or retry based on an event, you’re building a long-running workflow. Find best practices here:

  • All your workflows are about to be long running. Build for it.

    Long running everything

    Long-running work is anything that can’t finish in a single request. Learn how to ensure it stays durable.

    Read the blog
  • Run long jobs on serverless hosts

    Run long jobs on serverless hosts

    Keep agents and multi-step jobs running past your host’s request limit, without moving off serverless.

    Read the docs
  • Process large datasets without starting over

    Process large datasets without starting over

    Run jobs that take hours or days, survive crashes and deploys, and never redo finished work.

    Read the docs