Skip to main content
Restate provides durable execution primitives that make distributed systems resilient by default, without the operational overhead.

Resilient Orchestration

Build microservices that automatically recover from failures without losing progress:
  • Automatic recovery: Code resumes exactly where it left off after failures
  • Standard development: Write services like regular HTTP APIs
  • Resilient Sagas: Implement complex multi-step transactions with resilient rollback

Reliable Communication & Idempotency

Flexible communication patterns with strong delivery guarantees: Invocations
  • Zero message loss: All service communication is durably logged
  • Built-in retries: Automatic exponential backoff for transient failures
  • Scheduling: Delay messages for future processing
  • Request deduplication: Idempotency keys prevent duplicate processing

Durable Stateful Entities

Manage stateful entities without external databases or complex consistency mechanisms: Virtual Objects
  • Durable persistence: Application state survives crashes and deployments
  • Simple concurrency model: Single-writer semantics prevent consistency issues and race conditions
  • Horizontal scaling: Each object has its own message queue. Different entity keys process independently
  • Built-in querying: Access state via UI and APIs

Operational simplicity

Reduce infrastructure complexity (no need for queues + state stores + schedulers, etc.). A single binary including everything you need. Application Structure

Key Orchestration Patterns

Sagas

Implement resilient rollback logic for non-transient failures

Database interaction

Use Durable Execution to make database operations resilient and consistent

Parallel Processing

Execute independent operations concurrently while maintaining durability

Durable RPC, Idempotency & Concurrency

Call other services with guaranteed delivery, retries, and deduplication

Event-Driven Coordination

Wait for external events and webhooks with promises that survive crashes

Durable State Machines

Implement consistent state machines that survive crashes and restarts

Comparison with Other Solutions

Getting Started

Ready to build resilient microservices with Restate? Here are your next steps:

Quickstart

Run your first Restate service

Hands-on Tutorial

Learn orchestration patterns with interactive examples

Examples

Explore templates, patterns, and end-to-end applications
Evaluating Restate and missing a feature? Contact us on Discord or Slack.