Skip to content
← Tools / Skills
ToolRestate Software, Inc./10 trustVerified
Restate logo

Restate

Durable execution framework for building resilient applications

Visit official site →

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

  1. 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, set DO_NOT_TRACK=1.
  2. Start the server: restate-server — the UI is at http://localhost:9070.
  3. Scaffold an example service (Node.js ≥ 22): restate example typescript-hello-world && cd typescript-hello-world && npm install, then run it with npm run dev (serves on port 9080).
  4. Register the service with Restate: restate deployments register http://localhost:9080 (use http://host.docker.internal:9080 if Restate runs in Docker).
  5. 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

automationcodedata

Works with

Generic APIAny agent (.md)mcp

Trust score — 7/10

/10 trustVerified

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.