Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsMay 18, 2026·3 min de lecture

Restate — Durable Execution Engine for Distributed Applications

Restate is an open-source durable execution engine that makes distributed applications reliable without complex infrastructure. It provides persistent function state, reliable RPC, and workflow orchestration with a lightweight runtime written in Rust.

Prêt pour agents

Cet actif peut être lu et installé directement par les agents

TokRepo expose une commande CLI universelle, un contrat d'installation, le metadata JSON, un plan selon l'adaptateur et le contenu raw pour aider les agents à juger l'adaptation, le risque et les prochaines actions.

Native · 98/100Policy : autoriser
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
Restate Engine
Commande CLI universelle
npx tokrepo install 26da7b2f-52f8-11f1-9bc6-00163e2b0d79

Introduction

Restate is a durable execution engine that sits between your services and handles the hard parts of distributed computing: retries, state management, idempotency, and workflow coordination. You write ordinary functions in TypeScript, Java, Kotlin, Go, Python, or Rust, and Restate ensures they run to completion even through crashes and restarts.

What Restate Does

  • Provides durable execution: functions resume from where they left off after failures
  • Manages persistent state per function invocation without an external database
  • Handles reliable RPC between services with built-in retries and deduplication
  • Supports workflow patterns like sagas, compensation, and human-in-the-loop approvals
  • Offers a journal-based execution model that replays on recovery

Architecture Overview

Restate is a single-binary server written in Rust that acts as a proxy between callers and service handlers. It intercepts function calls and journals each step (state reads, RPC calls, side effects) in a local log. On failure, the runtime replays the journal to restore the function to its pre-crash state without re-executing side effects. Services connect to Restate via HTTP and communicate using a lightweight protocol over request-response.

Self-Hosting & Configuration

  • Install the server binary via Homebrew, Docker, or download from GitHub Releases
  • The server runs as a single process with an embedded log store (RocksDB-based)
  • Configure via environment variables or a TOML configuration file
  • Services register with Restate by pointing to their HTTP endpoint URL
  • The admin API on port 9070 manages deployments, state queries, and invocation inspection

Key Features

  • Language-agnostic: SDKs for TypeScript, Java, Kotlin, Go, Python, and Rust
  • Journaled execution ensures exactly-once side effects across retries
  • Keyed state: per-key persistent state without external databases
  • Virtual objects: stateful entities addressed by key, similar to the actor model
  • Built-in invocation scheduling with cron-like timers and delayed calls

Comparison with Similar Tools

  • Temporal — mature durable workflow platform; Restate is lighter and embeds state in the runtime itself
  • Inngest — event-driven durable functions; Restate provides lower-level primitives with more protocol control
  • AWS Step Functions — managed workflow service; Restate is self-hosted and language-native
  • Dapr — sidecar-based distributed runtime; Restate focuses specifically on durable execution and journaling
  • Azure Durable Functions — cloud-tied durable execution; Restate is vendor-neutral and self-hostable

FAQ

Q: How is Restate different from Temporal? A: Restate embeds state and journaling into a lightweight single-binary server, while Temporal requires a cluster with a separate database. Restate aims for simpler operations with a smaller infrastructure footprint.

Q: Do I need to change my code to use Restate? A: You annotate functions with SDK decorators and use the Restate context for state and RPC, but business logic remains ordinary code. No special DSL or workflow language is needed.

Q: What happens when the Restate server restarts? A: In-flight invocations are replayed from the journal. Side effects already executed are skipped, and the function resumes from the last journaled step.

Q: Can Restate run in production? A: Yes. Restate is used in production by multiple companies. The server supports persistent storage and can handle high-throughput workloads.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires