Durable workflow engine that runs step functions, background jobs and AI workflows on serverless, servers or edge, with retries and flow control.
restatedev/restate
Restate is a runtime for building resilient applications with durable execution, reliable messaging, and durable state that survive infrastructure failures.
Open-source alternative to:Temporal
- Stars
- 4,591
- Forks
- 226
- Open issues
- 471
- Last commit
- 2 hours ago
What is it?
Restate is a platform for building applications that keep running correctly when servers, processes, or networks fail. It provides durable versions of common building blocks such as function calls, promises, timers, and key-value state, so developers can write ordinary code while the platform handles retries and recovery.
Core mechanisms include durable execution, which retries failed work and avoids re-running completed steps, and reliable communication between services with exactly-once semantics for request-response calls, one-way messages, and scheduled tasks. Each service entity has isolated key-value state that is persisted together with execution progress. Long-running handlers suspend while awaiting a promise and resume when it resolves, which suits serverless deployments.
The project ships as a server and a CLI, with SDKs for TypeScript, Java and Kotlin, Python, Go, and Rust. A UI and CLI let you inspect services and invocations, and OpenTelemetry traces are generated for interactions between handlers.
Key features
- 01Durable execution that retries failures without re-running completed steps
- 02Exactly-once service-to-service communication for calls, one-way messages, and scheduled tasks
- 03Durable promises and timers that survive failures and restarts
- 04Isolated key-value state per service entity, persisted with execution progress
- 05SDKs for TypeScript, Java/Kotlin, Python, Go, and Rust
- 06UI and CLI for inspecting invocations, with OpenTelemetry traces
Use cases
- Building durable AI agents that must resume after failures
- Orchestrating microservices with reliable retries and compensation logic
- Running workflows-as-code that wait for timers or external webhooks
- Processing events reliably in serverless functions
Quick start
- 1
Install the server via Homebrew
brew install restatedev/tap/restate-server - 2
Install the CLI via Homebrew
brew install restatedev/tap/restate - 3
Run the server via npx
npx @restatedev/restate-server
Things to know
- Pre-built binaries are provided only for macOS and Linux.
- The license could not be determined from the project metadata.
Topics
FAQ
- What is restate?
- Restate is a runtime for building resilient applications with durable execution, reliable messaging, and durable state that survive infrastructure failures. Restate is a platform for building applications that keep running correctly when servers, processes, or networks fail. It provides durable versions of common building blocks such as function calls, promises, timers, and key-value state, so developers can write ordinary code while the platform handles retries and recovery.
- Is restate free to use? What license does it have?
- restate is open source under the Other license. Check the license terms before using it in commercial products.
- Is restate still maintained?
- Actively maintained. The last commit to restate was on Oct 22, 2026.
- What can I use restate for?
- Building durable AI agents that must resume after failures Orchestrating microservices with reliable retries and compensation logic Running workflows-as-code that wait for timers or external webhooks Processing events reliably in serverless functions
- How do I install restate?
- Install the server via Homebrew: brew install restatedev/tap/restate-server Install the CLI via Homebrew: brew install restatedev/tap/restate Run the server via npx: npx @restatedev/restate-server
- Where can I get restate?
- The source code and installation instructions are on GitHub: https://github.com/restatedev/restate
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source durable execution engine for orchestrating microservices, AI agents and adaptive workflow graphs, with workers in multiple languages.
Temporal is a durable execution platform whose server runs application workflows and automatically retries failed steps.
An orchestration engine for background tasks, AI agents and durable workflows, with Python, TypeScript, Go and Ruby SDKs and Postgres as its durability layer.
An actor-model framework for Go, inspired by Erlang/OTP, for building supervised, network-transparent distributed systems.
Java implementation of Apache Dubbo, an RPC and microservice framework for building service communication, discovery and traffic management.