Learn the key concepts of Restate:
- Services - Durable Execution: Making code resilient to failures via automatic retries and recovery of previously finished actions.
- Durable Building Blocks: Restate turns familiar programming constructs into recoverable, distributed building blocks. Discover what you can do with the SDK.
- Virtual Objects: Stateful services with access to long-lasting, consistent K/V state.
- Workflows: Durable sequences of steps that can be queried, signaled and awaited.
- Durable RPC, Idempotency and Concurrency, Idempotency & Concurrency: Restate persists requests and makes sure they execute exactly-once.
- (Delayed) Message Queue: Use Restate as a queue. Schedule tasks for now or later and ensure the task is only executed once.
- Convert Sync Tasks to Async: Kick off a synchronous task (e.g. data upload) and turn it into an asynchronous one if it takes too long.
- Sagas: Preserve consistency by tracking undo actions and running them when code fails halfway through.
- Stateful Actors and State Machines: State machine with a set of transitions, built as a Restate Virtual Object for automatic state persistence.
- Payment State Machines (Advanced): State machine example that tracks a payment process, ensuring consistent processing and cancellations.
- Parallelizing Work: Execute a list of tasks in parallel and then gather their result.
- Payment Signals (Advanced): Handling async payment callbacks for slow payments, with Stripe.
- Transactional Event Processing: Processing events (from Kafka) to update various downstream systems in a transactional way.
- Event Enrichment / Joins: Stateful functions/actors connected to Kafka and callable over RPC.
Complete applications built with Restate:
- Food Ordering App: A food delivery service (like DoorDash) that manages orders, restaurants, payments, and delivery drivers. The example mixes workflows (ordering) and stateful microservices (driver management), and uses Kafka as an event source for updates from delivery drivers.
- RAG Ingestion: Durably process webhook events when new files get uploaded to a bucket, and trigger workflows to process them, compute embeddings and put them in a vector database.
Starter templates for new projects:
Step-by-step guides to learn Restate:
- Tour of Restate: An introduction to the SDK features as described in the documentation.