#事件溯源 #CQRS #AxonServer

dendrite

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

24 个版本 (13 个重大更新)

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.4.2 2021 年 3 月 21 日

#577 in 网页编程

Download history 4/week @ 2024-03-09 1/week @ 2024-03-16 18/week @ 2024-03-30 5/week @ 2024-04-06

每月 184 次下载

MIT 许可证

115KB
2.5K SLoC

Dendrite

一个 Rust 库,用于连接到 AxonServer

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

核心概念

更多信息

dendrite-macros 包含宏,可以使得使用 dendrite 包更加方便。

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

状态

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

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

以及

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

现在最好

  • 添加对存储聚合投影快照的支持。
  • 添加对跟踪事件处理器负载均衡的支持。
  • 添加对 sagas 的支持。
  • ...

依赖关系

~10–30MB
~428K SLoC