6 releases

0.5.0 Jan 20, 2022
0.4.0 Jan 1, 2022
0.3.3 Dec 28, 2021

#2105 in Database interfaces

MIT/Apache

39KB
705 lines

Thalo logo

Thalo

Event sourcing framework for building microservices.

Crates.io Docs.io License Pull Requests Welcome Stargazers Last Commit Discord

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

Event streams

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

~12–22MB
~319K SLoC