Configs2026年5月18日·1 分钟阅读

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.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Native · 98/100策略:允许
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:Established
入口
Restate Engine
通用 CLI 安装命令
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

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产