# restate

> restate, a magmalake tin: Durable execution in Mojo, via Restate.

[magmalake](https://magmalake.dev/) [restate](https://magmalake.dev/s/restate)

Durable execution in Mojo, via Restate. A Rust shim embeds the official Restate SDK — Rust owns the HTTP/2 endpoint, the event loop and the journal — while your handlers are Mojo, driven by a synchronous loop where every durable operation crosses one C-ABI call.

Install

```
pixi shelf add restate-mojo
```

Version

`0.4.1` on mojoshelf

Source

[GitHub](https://github.com/magmalake/restate.mojo) [README](https://github.com/magmalake/restate.mojo#readme)

## Works today

- State, sleep, run and awakeables from handle\_\* functions App.run finds by name
- app.serve(num\_workers) runs that loop on N threads via threads-mojo's WorkerPool
- Self-calls need two or more workers: one worker has no second thread to run the callee
- Payloads are raw bytes — parse and serialize in your handler

Checked against Two end-to-end suites against a real restate-server booted per run, on macOS and Linux

- [Orca](https://magmalake.dev/s/orca) pipelines as DAGs · cron schedules · backfills
- [Dista](https://magmalake.dev/s/dista) distributed tasks · actors · results that stay on workers
- [Every tin](https://magmalake.dev/tins)

[A magmalake project](https://magmalake.dev/)

Apache 2.0 · © 2026 Marius Seritan
