1 unstable release
0.5.0 | Jan 20, 2022 |
---|
#2490 in Database interfaces
22KB
354 lines
Thalo
Event sourcing framework for building microservices.
Overview
Thalo is an event-sourcing framework for building large scale systems based on the following patterns:
It's designed to be modular with additional crates implementing most functionality.
Official Crates
Core
- thalo - Core framework.
- thalo-schema - Build aggregate schemas into Rust code.
- thalo-testing - Test utils for thalo apps.
- thalo-macros - Macros for implementing traits. This can be enabled in the core crate with the
macros
feature flag.
Event stores
- thalo-postgres - Postgres implementation of
EventStore
. - thalo-inmemory - In-memory implementation of
EventStore
. - thalo-filestore - Filestore implementation of
EventStore
.
Event streams
- thalo-kafka - Kafka implementation of
EventStream
.
Why
With Rust being a younger language than most, the ecosystem is lacking Event Sourcing & CQRS frameworks. Many of which are abandoned, or just not feature rich. Thalo aims to provide a backbone and some core crates to build robust event sourced systems.
Examples
Examples can be seen in the examples
directory.
Getting Help
As Thalo is in pre-release, the API is not stable yet. If you'd like to get started using Thalo, you can checkout the examples directory, or chat with us on our Discord server.
Contributing
🎈 Thanks for your help improving the project! We are so happy to have you! As we don't currently have a contributing guide, you can ping us on the Discord server or open an issue for any questions/discussions.
Release Schedule
Thalo doesn't follow a fixed release schedule, but as the project is in pre-release and active development, you can expect commits on a near daily basis, and version updates evey few days.
License
This project is licensed under the MIT OR Apache-2.0 license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Thalo by you, shall be licensed as MIT, without any additional terms or conditions.
Dependencies
~1.8–2.5MB
~53K SLoC