Restate
Durable execution framework for building resilient applications
About
Restate is a durable execution engine: you write ordinary service handlers in TypeScript, Java, Kotlin, Go, Python, or Rust, and Restate journals every step so invocations survive crashes, restarts, and deploys — retries skip already-completed steps and even sleeps are durable.
It runs as a single self-contained binary with no external database or broker required, and includes virtual objects (durable entities), workflows, and service discovery via an admin UI. Built by the team behind Apache Flink (ex-Ververica founders).
What it can do
- • Durable execution: automatic retries with journal-based recovery — completed steps are never re-run
- • Durable sleep/timers that survive restarts and only last for the remaining duration
- • Services, virtual objects (durable single-writer entities), and durable workflows
- • Idempotency keys and exactly-once invocation semantics per key (provider-claimed)
- • SDKs: TypeScript, Java, Kotlin, Go, Python, Rust; coding-agent plugin with docs-via-MCP
- • Admin UI with service playground, invocation inspection, and deployment management
- • Restate Cloud option with secure tunnels for private services
Setup
- Install the server and CLI (macOS/Linux):
brew install restatedev/tap/restate-server restatedev/tap/restate— or grab binaries, the npm package, or the Docker image. To disable anonymous telemetry, setDO_NOT_TRACK=1. - Start the server:
restate-server— the UI is at http://localhost:9070. - Scaffold an example service (Node.js ≥ 22):
restate example typescript-hello-world && cd typescript-hello-world && npm install, then run it withnpm run dev(serves on port 9080). - Register the service with Restate:
restate deployments register http://localhost:9080(usehttp://host.docker.internal:9080if Restate runs in Docker). - Invoke it:
curl localhost:8080/restate/call/Greeter/greet --json '{"name": "Sarah"}'→You said hi to Sarah!. Kill/restart the service mid-run to watch durable recovery skip completed steps.
Prerequisites
Node.js ≥ 22 (TypeScript example) or a Java/Kotlin/Go/Python/Rust runtime for other SDKs. No database, broker, or other infrastructure — Restate is a single binary. Docker optional.
Use cases
Works with
Trust score — 7/10
Scored 7/10 (verified tier, metrics-v1). Evidence: 4,549 GitHub stars (log-scaled vs catalog peers); last push 0d ago; 34 releases/12mo; 475 open issues. Manual review: daily anonymous ping opt-out via DO_NOT_TRACK; auth model unverified for public exposure. License: BSL 1.1 (converts to Apache-2.0 after 4y; excludes hosted platform).
★ 4,549 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 7.0/10
- Maintenance · recency, releases, issue load
- 8.2/10
- Openness · license + docs
- 6.5/10
- Manual review · sanity read + red-flag check
- 8.0/10
- · 4,549 GitHub stars (log-scaled vs catalog peers)
- · last push 0d ago; 34 releases/12mo; 475 open issues
- · manual review: daily anonymous ping opt-out via DO_NOT_TRACK; auth model unverified for public exposure
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.