【发布时间】:2020-02-21 21:39:48
【问题描述】:
目前,我正在实现事件驱动架构,并有一个命令服务(写入部分)和另一个查询服务(读取部分)。
我现在在做什么。
- 在 CommandService 上接受命令
- 在事件总线上存储事件和发布事件
- ReadService 监听这些事件并更新读取模型
如果您听自己的事件,这听起来不错。 假设我从 CommandService 监听外部事件
- 收听活动
- 为此事件处理命令
- 将您的域生成的事件存储在您的事件存储中并将此事件发布到事件总线
- ReadService 监听这些事件并更新读取模型
在这种方法中,我可以看到更新我的读取模型存在双倍延迟。 第一个延迟 -> CommandService 时间拉事件 第二个延迟 -> ReadService 时间来拉取从 CommandService 生成的事件。
我在想如果我更新我的 ReadService 以在不需要事件总线的情况下直接侦听 CommandService 事件存储,那么我可以减少其中一个延迟。
你怎么看?
【问题讨论】:
标签: cqrs event-sourcing event-driven-design