Introduction
Overview
Thalo is an innovative event sourcing runtime designed to leverage the capabilities of WebAssembly (wasm) through wasmtime and sled, an embedded event store. It facilitates efficient management of commands using compiled aggregate wasm components and ensures reliable persistence of resulting events. Thalo stands out for its ability to efficiently rebuild aggregate states from previous events, offering a robust solution for complex state management in modern applications.
Why Thalo?
Thalo is built with performance, reliability, and scalability in mind. Its key features include:
- Wasmtime Integration: Utilizes the high-performance capabilities of WebAssembly for isolated and efficient aggregate computation.
- Sled Event Store: A fast and reliable embedded database for storing events.
- Actor-Based Aggregates: Offers lock-free management, supporting a high throughput of commands.
- Projections with At-Least-Once Guarantee: Ensures reliable event handling and state projection.
- LRU Caching: Optimizes memory usage for fast aggregate state rebuilding.
- Streamlined State Management: Automates the reconstruction of aggregate states from events.
- Multi-Language Support: Allows compiling aggregates to wasm, enabling the use of various programming languages (currently supporting Rust).
- Event Relaying: Facilitates event relay to external services with a reliable delivery guarantee.
Ideal Use Cases
Thalo is particularly suited for applications where state management and historical data tracking are crucial, such as:
- Financial Systems: For managing transactions and maintaining audit trails.
- Order Management Systems: To track order histories and manage state changes.
- Other Domains: Where auditability, traceability, and complex state management are key requirements.