Back to rankings

restatedev/restate

Rustdocs.restate.dev

Restate is the platform for building resilient applications that tolerate all infrastructure faults w/o the need for a PhD.

distributed-systemsasync-awaitdurable-executionmicroservicesconsistent-statereliable-communicationserverlessevent-drivencliworkflow-engine
Star Growth
Stars
4.2k
Forks
185
Weekly Growth
Issues
321
2k4k
Nov 2023Sep 2024Aug 2025Jul 2026
Artifactscrates.iocargo add restate
README

Documentation Examples Discord Slack Twitter

Restate - Building resilient applications made easy!

Restate overview

Restate is the simplest way to build resilient applications.

Restate provides a distributed durable version of your everyday building blocks, letting you build a wide range of use cases:

Get started with Restate

  1. 🏎 Follow the Quickstart to get Restate up and running within 2 minutes!
  2. 💡 The Tour of Restate walks you through the most important features of Restate.

SDKs

Restate supports the following SDKs:

Install

We offer pre-built binaries of the CLI and the server for MacOS and Linux.

Have a look at the Quickstart or installation instructions in the docs.

Install the server

Install via Homebrew:

brew install restatedev/tap/restate-server

Run via npx:

npx @restatedev/restate-server

Run via docker:

docker run --rm -p 8080:8080 -p 9070:9070 -p 9071:9071 \
    --add-host=host.docker.internal:host-gateway docker.restate.dev/restatedev/restate:latest

Install the CLI

Install via Homebrew:

brew install restatedev/tap/restate

Install via npm:

npm install --global @restatedev/restate

Run via npx:

npx @restatedev/restate

You can also download the binaries from the release page or our download page.

Community

Core primitives

The basic primitives Restate offers to simplify application development are the following:

  • Reliable Execution: Restate guarantees code runs to completion. Failures result in retries that use the Durable Execution mechanism to recover partial progress and prevent re-executing completed steps.
  • Reliable Communication: Services communicate with exactly-once semantics: whether it's request-response, one-way messages, or scheduled tasks. Restate reliably delivers messages and uses Durable Execution to ensure no losses or duplicates can happen.
  • Durable Promises and Timers: Register Promises/Futures and timers in Restate to make them resilient to failures (e.g. sleep, webhooks, timers). Restate can recover them across failures, processes, and time.
  • Consistent State: Implement stateful entities with isolated K/V state per entity. Restate persists the K/V state updates together with the execution progress to ensure consistent state. Restate attaches the K/V state to the request on invocation, and writes it back upon completion. This is particularly efficient for FaaS deployments (stateful serverless, yay!).
  • Suspending User Code: long-running code suspends when awaiting on a Promise/Future and resumes when that promise is resolved. This is particularly useful in combination with serverless deployments.
  • Observability & Introspection: Restate includes a UI and CLI to inspect the state of your application across services and invocations. Restate automatically generates Open Telemetry traces for the interactions between handlers.

Contributing

We’re excited if you join the Restate community and start contributing! Whether it is feature requests, bug reports, ideas & feedback or PRs, we appreciate any and all contributions. We know that your time is precious and, therefore, deeply value any effort to contribute!

Check out our development guidelines and tips for local development to get started.

Versions

Restate follows Semantic Versioning.

You can safely upgrade from a Restate x.y to x.(y+1) release without performing any manual data migration, as Restate performs an automatic data migration for you.

For SDK compatibility, refer to the supported version matrix in the respective READMEs:

Building Restate locally

In order to build Restate locally follow the build instructions.

Related repositories
doocs/advanced-java

😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

JavaMavenCreative Commons Attribution Share Alike 4.0 Internationaljavadistributed-systems
java.doocs.org
79k19.2k
redis/redis

For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

COtherdatabasekey-value
redis.io
75.6k24.7k
binhnguyennus/awesome-scalability

The Patterns of Scalable, Reliable, and Performant Large-Scale Systems

MIT Licensesystem-designbackend
72.6k7k
etcd-io/etcd

Distributed reliable key-value store for the most critical data of a distributed system

GoGo ModulesApache License 2.0etcdraft
etcd.io
52k10.4k
karanpratapsingh/system-design

Learn how to design systems at scale and prepare for system design interviews

Otherarchitecturedistributed-systems
leanpub.com/systemdesign
44.6k5.8k
apache/dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.

JavaMavenApache License 2.0dubbodistributed-systems
dubbo.apache.org
41.5k26.4k
ashishps1/awesome-system-design-resources

Learn System Design concepts and prepare for interviews using free resources.

JavaMavenGNU General Public License v3.0awesomebackend
algomaster.io
39.8k8.5k
spacedriveapp/spacedrive

Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.

Rustcrates.ioOtherfile-managerdistributed-systems
spacedrive.com
38.6k1.3k
anoma/anoma

Reference implementation of Anoma

ElixirMIT Licensecryptographyblockchain
anoma.net
33.7k4.1k
seaweedfs/seaweedfs

SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables, designed to handle billions of files with O(1) disk access and effortless horizontal scaling.

GoGo ModulesApache License 2.0distributed-storagedistributed-systems
seaweedfs.com
33.6k2.9k
conductor-oss/conductor

Conductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents

JavaMavenApache License 2.0distributed-systemsgrpc
docs.conductor-oss.org
32k963
dmlc/xgboost

Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

C++Apache License 2.0gbdtgbrt
xgboost.readthedocs.io
28.6k8.9k