7个版本

0.3.3 2019年9月5日
0.3.2 2019年8月7日
0.3.1 2019年5月30日
0.3.0 2019年4月29日
0.1.0 2019年2月1日

#2356数据库接口

每月 22 次下载

Apache-2.0

89KB
2K SLoC

cqrs

cqrs是一个以事件为“真相之源”的事件驱动框架,用于编写使用事件作为CQRS(命令-查询职责分离)的软件。

该框架围绕几个关键概念构建

  • 事件:系统中发生的事情
  • 聚合:事件的投影,用于计算系统的当前状态视图
  • 命令:意图,当针对聚合执行时,可能产生零个或多个事件,或者可能由于聚合的当前状态而被禁止
  • 反应:当系统中发生某些事件时执行动作的过程

该框架编写为适用于通用后端,并提供了一个针对PostgreSQL后端的实现。

要了解如何构建包含聚合、事件和命令的域的示例,请查看cqrs-todo-core包,这是一个简单的待办事项列表实现。

源代码仓库还包含在cqrs-todoql-psql目录中的二进制文件,该文件演示了如何使用todo域与PostgreSQL后端和GraphQL前端(使用juniper包)一起使用。

Rust编译器的最低支持版本目前是1.32。

开发

要构建此仓库中的所有crates

cargo build

要测试所有crates和文档

cargo test

要编译仓库中crates的文档(移除--no-deps以包括依赖项的文档;添加--open以自动在浏览器中打开文档)

cargo doc --no-deps

此crate旨在支持wasm32-unknown-unknown目标,用于cqrscqrs-corecqrs-todo-core包。要针对此目标构建,请执行

cargo build --target=wasm32-unknown-unknown -p cqrs-core -p cqrs -p cqrs-todo-core

许可证

cqrsApache-2.0许可证下开放授权。

依赖项

~5–11MB
~141K SLoC