Why we built Restate
Blog post from Restate
Restate is a new project developed by Stephan Ewen and his team, designed to simplify building distributed applications and microservices by combining the flexibility of generic RPC-based applications with the scalability and resilience of stream processing. This innovative framework, written in Rust, operates as a lightweight event broker that facilitates durable async/await operations, making applications more robust and scalable without requiring users to adopt new programming paradigms. Restate's architecture is log-centric, significantly reducing the complexity of distributed coordination by using a single write to persist both computation progress and effect existence. It supports familiar RPC handlers, integrates durable execution with persistent promises, and maintains consistency across distributed services. The platform is particularly suited for low-latency workflows, serverless applications, microservice orchestration, and event-driven applications, offering features such as message queuing, durable timers, and exactly-once Kafka integration. Currently in closed beta, Restate aims to enhance developer experience and operational reliability, providing a seamless way to build, deploy, and manage distributed systems.