// the find
thalo-rs/thalo
An Event Sourcing runtime with WebAssembly & embedded event store
Thalo is a Rust event-sourcing runtime that compiles aggregates to WebAssembly components, runs them in wasmtime, and persists events in an embedded sled store. It's aimed at developers who want CQRS/event-sourcing with sandboxed, hot-swappable aggregate logic rather than a traditional library-based ES framework.
Compiling aggregates to WASM and loading them via wasmtime is a genuinely different take on ES in Rust — you get a stable, language-agnostic binary interface for business logic instead of baking it into the host process, plus natural sandboxing. The feature set is more complete than a toy project: a CLI for building/executing aggregates, an outbox relay with at-least-once delivery to external systems like Redis streams, and LRU-cached aggregate rebuilding. Using sled as an embedded store means no separate event-store process to run for local dev or small deployments.
The README leads with a maintenance notice pointing users to successor projects (Umari, SierraDB/kameo_es) — this is explicitly a dead end, not something to build on. The API is self-described as pre-release and unstable, and the 'multi-language' aggregate claim is aspirational since only Rust is actually supported today. sled has its own long-standing production-readiness concerns (stalled 1.0, known data-loss edge cases in the past), so you're inheriting that risk for your event store with no documented migration path off it. There's no clustering or replication story — it's single-node only — and no contributing guide or deeper architectural docs beyond the README.