Favicon of Temporal

Temporal

Temporal is an MIT-licensed durable execution platform: workflows are ordinary code in one of eight SDK languages, and the service persists every step so a function can keep running across crashes, restarts, and deploys for minutes or for months.

LicenseOpen source (permissive)· MIT
DeploymentSelf-hostedManaged
PricingFreeSubscription
Operational complexityHigh
WorkloadBatch
LanguageGo

Use it when

  • The workflow is really a long-running distributed application: multi-step processes that must survive crashes, deploys, and month-long waits.
  • Each activity must complete observably exactly once, with a replayable event history behind it.
  • Teams work in multiple languages; SDKs cover Go, Java, Python, TypeScript, .NET, PHP, Ruby, and Rust.
  • Human approvals, signals, and updates to running workflows are normal, not exceptional.

Think twice when

  • The need is a pipeline scheduler with connectors and data awareness; Temporal has no catalog, no assets, and every integration is code you write.
  • Nobody can operate the service plus its persistence store and Elasticsearch-backed visibility at scale; self-hosting is genuinely involved.
  • Payload limits bite: 2MB per payload and a capped event history, so large data must live elsewhere and pass by reference.

How it runs

You run workers; the Temporal service persists every event and replays state after failures, self-hosted over PostgreSQL or MySQL, or as Temporal Cloud from $100 a month billed on Actions and storage. Schedules cover time-based starts; anything event-driven is a service you write calling the API. Activities retry until complete and must be idempotent.

Details

Compare

How Temporal answers the questions Workflow Orchestration turns on.

Workflow Orchestration
How it works
Authoring modelCode in the host language, SDKs for Go, Java, Python, TypeScript, .NET, PHP, Ruby and Rust
Unit of workA workflow execution (durable code that runs for minutes or months) made of activities, the only parts allowed to touch the outside world; child workflows nest them, and signals, queries and updates talk to one while it runs
Passing dataArguments and return values are payloads serialised by a pluggable data converter, JSON by default, and travel inside the event history rather than a store, so the limits bind: 2MB a payload, 4MB a gRPC message, 50MB or 51,200 events a history, warning at 256KB. Custom codecs add encryption or compression
TriggersA client calling start, and Schedules for time, calendar or interval specs, an overlap policy, a catchup window defaulting to a year, and pause. Nothing event-driven exists in the platform, so a webhook means writing the service that receives it
Delivery guaranteeActivities are at-least-once and must be idempotent; retried until observed complete exactly once
Caching and rerunsNo result cache and no rerun-from-failure, because the event history makes both moot, a completed activity is never executed twice, and workers keep hot executions in an LRU sticky cache to skip replay altogether. A rerun is a reset to a chosen event, copying history to that point and continuing with current code; continue-as-new keeps a long history off the limits
Running it
Where tasks runWorkers you run yourself, connected to a service that holds the event history
Connections
Task languagesThe same eight SDKs, and not necessarily the one the workflow is written in, an activity can be implemented by a worker in another language, routed by giving it its own task queue. Seven are GA; Rust is still pre-release
ConnectorsNone: an activity is code you write, so the integration is whatever client library you import; Nexus connects Temporal namespaces to each other, not to outside systems
Cost
Billing unitFree to self-host. Cloud bills Actions plus storage (active at $0.042 a GB-hour against retained at $0.00105) charged as the greater of a plan floor or 5–10% of usage, from $100 a month for Essentials, with Actions volume-tiered from $50 down to $25 a million

Share:

Alternatives to Temporal

Favicon

 

  
  
Favicon

 

  
  
Favicon