3个不稳定版本
0.2.1 | 2019年8月7日 |
---|---|
0.2.0 | 2019年4月29日 |
0.1.0 | 2019年2月1日 |
#24 in #aggregate
在 2 crates 中使用
56KB
1K SLoC
cqrs
cqrs
是一个使用事件作为“真相来源”并实现命令-查询责任分离 (CQRS) 的软件事件驱动框架。
该框架围绕几个关键概念构建
- 事件:系统中发生的事情
- 聚合:事件的投影,计算系统当前状态的一个视图
- 命令:意图,当对聚合执行时,可能产生零个或多个事件,或者可能被聚合的当前状态禁止
- 反应:在系统中发生某些事件时执行动作的过程
该框架被编写为适用于通用后端,并提供了 PostgreSQL 后端的实现。
有关如何构建包含聚合、事件和命令的域的示例,请参阅 cqrs-todo-core
crate,它是一个简单的待办事项列表实现。
源代码库还包含在 cqrs-todoql-psql
目录中的二进制文件,该文件演示了如何使用 todo
域与 PostgreSQL 后端以及使用 juniper
crate 的 GraphQL 前端一起使用。
开发
要构建此存储库中的所有crates
cargo build
要测试所有crates和文档
cargo test
要编译存储库中crates的文档(删除 --no-deps
以包括依赖项的文档;添加 --open
以在浏览器中自动打开文档)
cargo doc --no-deps
此crate旨在支持 wasm32-unknown-unknown
目标,用于 cqrs
、cqrs-core
和 cqrs-todo-core
crates。要针对此目标构建,请执行
cargo build --target=wasm32-unknown-unknown -p cqrs-core -p cqrs -p cqrs-todo-core
许可证
cqrs
在 Apache-2.0 许可证下开放许可。
依赖项
~1.7–2.7MB
~53K SLoC