durable workflow execution with automatic state recovery
Executes workflow code as a series of deterministic steps with automatic state persistence and recovery. Uses event sourcing via the History Service to store all workflow decisions and events in an immutable event log, enabling workers to replay execution history and recover from failures without re-executing completed steps. The Mutable State Management system tracks workflow progress across shards, and the History Engine reconstructs state by replaying events up to the failure point.
Unique: Uses event sourcing with deterministic replay instead of checkpoint-based recovery; the History Service stores every decision as an immutable event, and workers reconstruct state by replaying the event log up to the failure point. This eliminates the need for explicit checkpoints and enables perfect auditability without sacrificing performance.
vs alternatives: More reliable than Airflow (which loses in-flight task state on restart) and more transparent than AWS Step Functions (which hides execution history behind proprietary APIs) because Temporal stores complete event logs and enables deterministic replay for perfect recovery.
activity-based external service integration with automatic retries and timeouts
Wraps external service calls (HTTP APIs, database queries, ML model inference) as Activities — isolated, non-deterministic operations that run on workers and report results back to the workflow. The Matching Service routes activity tasks to available workers via task queues, and the History Service tracks activity completion. Built-in retry policies (exponential backoff, max attempts, jitter) and timeout enforcement (start-to-close, schedule-to-start, heartbeat) are applied automatically without workflow code changes.
Unique: Separates workflow logic (deterministic, replayed) from external calls (Activities, non-deterministic, executed once) via a strict boundary enforced by the SDK. Retry and timeout policies are declarative and applied by the Temporal server, not by activity code, enabling consistent behavior across all activities without boilerplate.
More flexible than AWS Lambda retry policies (which are binary: retry or fail) because Temporal supports custom retry strategies (exponential backoff, jitter, max duration) and heartbeat-based liveness detection. More transparent than Celery (which requires manual retry logic in task code) because retries are centrally managed by the server.