Restate is a versatile tool designed to build workflows, event-driven applications, and distributed services with a focus on fault tolerance and durability. It supports the creation of resilient applications using regular functions and services within existing infrastructures, whether on FaaS, Kubernetes, servers, or containers. Restate can be self-hosted or fully managed via Restate Cloud.
The product emphasizes "Workflows as code," allowing developers to write workflows using standard code and control flow without custom DSLs. It ensures durable execution, automatically handling retries and memoizing results to avoid re-execution during failures. Restate supports API calls, webhooks, asynchronous tasks, stateful event processing, durable signals, idempotency, sagas, and state machines.
Restate's durable execution model ensures reliable completion of tasks, even in the presence of failures, and integrates seamlessly with synchronous and asynchronous code paths. Its idempotency feature allows for re-attaching to ongoing invocations, making calls automatically idempotent within a durable execution context.
The tool also facilitates stateful event processing, handling events from sources like Kafka with fine-grained retries and exactly-once state maintenance. Additionally, Restate supports the implementation of robust sagas and compensation patterns for long-running transactions, ensuring compensations occur even during failures.
Restate provides a simple concurrency model with single-writer semantics and virtual queues for state machines, ensuring efficient and scalable state transitions. The product is built in Rust, ensuring a resource-efficient and resilient system that runs equally well locally, on-prem, or in the cloud.
Developers can use Restate with TypeScript, JavaScript, Java, and Kotlin, and benefit from built-in tools like OTel tracing, a powerful CLI, and a SQL engine for operating applications. Restate Cloud offers a zero-infrastructure, fully serverless experience managed by the developers of the system.
Pricing
Pricing information is not available