Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsMay 18, 2026·3 min de lectura

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.

Listo para agents

Este activo puede ser leído e instalado directamente por agents

TokRepo expone un comando CLI universal, contrato de instalación, metadata JSON, plan según adaptador y contenido raw para que los agents evalúen compatibilidad, riesgo y próximos pasos.

Native · 98/100Política: permitir
Superficie agent
Cualquier agent MCP/CLI
Tipo
Skill
Instalación
Single
Confianza
Confianza: Established
Entrada
Restate Engine
Comando CLI universal
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

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados