#事件溯源 #CQRS #axon-server

dendrite_lib

使用 AxonServer 在 Rust 中实现事件溯源和 CQRS

9 个版本 (破坏性更新)

0.14.1 2024年1月24日
0.13.0 2023年11月11日
0.12.0 2022年11月21日
0.10.1 2022年1月18日
0.7.0 2021年12月3日

#1351 in 网页编程


用于 4 crates

MIT 许可证

98KB
2.5K SLoC

Dendrite

A Rust 库,用于连接到 AxonServer.

请参阅 GitHub 项目 rustigaan/archetype-rust-axon,了解如何使用此代码的示例。

核心概念

更多信息

crate dendrite-macros 提供了宏,使得与 dendrite crate 的交互更加便捷。

该项目是 dendrite2goarchetype-go-axon 的兄弟项目,但针对 Rust 编程语言。

状态

该项目现在已达到最小可行交付水平,第一阶段已完成:当前应用程序可以正确地与 AxonServer 通信。与 archetype-go-axon 一样,它可以执行以下操作

  1. ☑ 与 AxonServer 建立会话
    • ☑ 启用 React 应用通过 grpc-web 调用示例-command-api 服务的 RPC 端点
  2. ☑ 发布命令
  3. ☑ 注册命令处理器并处理命令
  4. ☑ 提交事件
    • ☑ 将事件流式传输到 UI
  5. ☑ 检索聚合事件的记录并构建投影
    • ☑ 验证命令与投影
  6. ☑ 注册跟踪事件处理器并处理事件
  7. ☑ 在查询模型(Elastic Search)中存储记录
    • ☑ 在 Elastic Search 中存储跟踪令牌
  8. ☑ 注册查询处理器并处理查询
    • ☑ 在 UI 中显示查询结果

以及

  • 内存缓存聚合投影
  • 在处理器主体中访问 Axon 命令、事件、QueryRequest 消息。

现在,最好

  • 添加对在 AxonServer 中存储聚合投影快照的支持。
  • 添加对跟踪事件处理器负载分片的支持。
  • 添加对 sagas 的支持。
  • ...

依赖关系

~10–20MB
~264K SLoC