Thalo 是一个基于以下模式构建大型系统的事件溯源框架:
- 事件溯源
- CQRS
- 事件驱动
- 事务发件箱
- DDD
它被设计成模块化的,带有实现大多数功能的附加crates 。
由于 Rust 是一种比大多数语言更年轻的语言,因此生态系统缺乏事件溯源和 CQRS 框架。其中许多已被遗弃,或者只是功能不丰富。Thalo 旨在提供一个主干和一些核心crates 来构建强大的事件源系统。
ESDL - 事件溯源模式定义语言
建议使用ESDL 模式语言定义聚合、命令和事件。
这允许更具可读性的聚合定义,并提供代码生成以生成与 Thalo 兼容的事件、命令特征和自定义类型。
.esdl可以在 中找到一个示例examples/bank-account/bank-account.esdl。
示例包括:
- bank-account:使用 ESDL 模式文件构建的银行账户聚合。
- protobuf:用于发送同步命令的 gRPC 客户端和服务器。
所有示例都可以在examples目录中看到。