Temporal
The heavyweight option once your background work turns into genuinely long-running, multi-step distributed workflows that need to survive crashes for days, not seconds.
What is Temporal?
Temporal is a durable execution platform for orchestrating long-running, multi-step workflows that need to survive crashes, deploys, and retries without losing state. Instead of a simple job queue firing off individual tasks, you write workflow code as if it runs uninterrupted, and Temporal handles persisting progress, replaying state after failures, and retrying failed steps, so a workflow that takes days (waiting on human approval, external API polling, scheduled steps) behaves as reliably as one that takes seconds.
Key features
- Durable execution: workflow state survives process crashes, deploys, and infrastructure failures without manual recovery logic
- Automatic retries with configurable backoff for individual workflow steps (activities), isolated from the rest of the workflow
- Workflows written as regular code in supported languages (Go, Java, TypeScript, Python, and more), not a separate DSL or YAML config
- Built-in support for long delays, human-in-the-loop steps, and signals/queries into a running workflow
- Full execution history and visibility into every step of a workflow, useful for debugging exactly what happened and when
Who it's for
The right tool once background work becomes genuinely complex, multi-step, and long-running, think order fulfillment, multi-day approval chains, or saga-style distributed transactions, not simple one-off background jobs. For straightforward async tasks (send an email, resize an image), a lightweight job queue is simpler and has far less operational overhead than running or hosting Temporal.
Pricing
Temporal Cloud is usage-based, priced by workflow executions and actions; the open-source server is free to self-host if you'd rather run it yourself.