← Back to stack

Builder infrastructure

Restate

Build innately resilient distributed apps.

Visit official site →

Restate is a lightweight runtime that gives ordinary application code durable execution. You write normal control flow - loops, conditionals, function calls - and Restate persists the progress each step makes, so after a crash the code resumes where it left off instead of re-running from the top. It ships as a single self-contained binary and targets AI agents, long-running workflows, microservice orchestration and event processing, with SDKs for TypeScript, Java, Kotlin, Python, Go and Rust.

Vendor's own claim

What Restate is

Vendor's own claim

Infrastructure, not a GTM tool. Restate's pitch is that the defensive code most teams write around unreliable steps - retries, idempotency keys, saga compensation, state checkpoints - is boilerplate the runtime should own. The framing that matters for AI work is the agent loop: call the model, publish a step, call a tool, call the model again. Each of those can fail, and without durability the whole loop restarts. Restate persists the journal so it does not. The vendor positions itself explicitly against Temporal, arguing a single self-contained binary with serverless support against what it characterises as a heavyweight orchestrator. It is open source, developed in the open across the restatedev GitHub organisation, with a managed Restate Cloud and a bring-your-own-cloud option the vendor announced as private, secure and up to 10x cheaper.

What it can do

Vendor's own claim
  • Durable execution - completed steps are stored and replayed, so code resumes from the failure point
  • Built-in state that persists beyond a single execution and is shared between functions with strong consistency guarantees
  • Virtual objects: stateful single-writer entities
  • Reliable sync or async service-to-service communication with exactly-once semantics
  • Flow control: concurrency limits per scope to cap cost, protect downstream services and keep scheduling fair
  • Durable timers for sleeping, scheduling and waiting on external events
  • Workflows coordinating long-running processes, human approvals and webhook signals
  • An Admin API for registering and versioning deployments, and for inspecting, cancelling, killing, pausing and purging invocations
  • SQL introspection over system and service state
  • SDKs for TypeScript, Java, Kotlin, Python, Go and Rust; deployable as HTTP services or AWS Lambda

Who it is for

Our read

Engineering teams building long-running, event-driven or distributed systems where partial failure is expensive - multi-step agents that call tools and models, approval workflows that wait days for a human, microservice choreography needing exactly-once guarantees, and event pipelines. The self-hostable single binary makes it approachable for small teams; the Cloud and BYOC options exist for those who do not want to operate it.

When to choose something else

Our read

This is a developer runtime, not an application - there is nothing here for a non-engineering buyer, and no amount of configuration turns it into one. Adopting it is an architectural commitment: your handlers become Restate services, registered as deployments and invoked through the runtime, which means your service topology, deployment pipeline and versioning strategy all change. Teams whose durability needs are met by a job queue and a retry decorator are taking on a distributed runtime to solve a problem they do not have. And if you self-host rather than buy Cloud, you own operating it - the status page we retrieved covers Restate Cloud environments and the Cloud UI, so its uptime signal does not describe your own cluster.

Implementation considerations

Our read

Setup assessment: 1h

The vendor's quickstart states you can get a service running in a few minutes, and the runtime is a single self-contained binary, so a local first service is genuinely fast. We have set the bucket above that because getting to something you would deploy means picking an SDK, registering deployments, deciding on hosting (self-host, Restate Cloud, or bring-your-own-cloud) and working out versioning - hours rather than minutes, and materially longer for an existing codebase being migrated.

Prerequisites

  • An engineering team and a supported language: TypeScript, Java, Kotlin, Python, Go or Rust
  • Somewhere to run the Restate server - self-hosted binary, Restate Cloud, or bring-your-own-cloud
  • Service endpoints reachable by the runtime for discovery and invocation (HTTP or AWS Lambda)

Verify before you adopt it

  • The open-source licence terms - the restatedev GitHub organisation is referenced by the vendor but we did not retrieve any repository or LICENSE file
  • The official Claude Code plugin / docs MCP server repository referenced in the vendor's llms.txt - not retrieved, so no URL is recorded for it
  • Official social, GitHub or YouTube URLs - the docs reference Discord, Slack, Twitter, LinkedIn, Bluesky and a YouTube channel, but no URL was confirmed, so none is recorded