【发布时间】:2018-02-21 17:56:30
【问题描述】:
我们正在使用微服务、cqrs、使用 nodejs cqrs-domain 的事件存储,一切都像魅力一样工作,典型的流程如下:
- 休息->2。服务->3。命令验证-> 4。命令-> 5。聚合-> 6。事件-> 7。事件存储(事务数据)-> 8。返回带有聚合 ID 的聚合-> 9. 存储在微服务本地数据库中(本质上是读取数据库)-> 10. 将事件发布到队列
上述流程的问题在于,由于事务数据保存,即事件存储的持久性和微服务读取数据的存储发生在不同的事务上下文中,如果在步骤 9 出现任何故障,我应该如何处理事件已经传播到事件存储和已经更新的聚合?
任何建议都将受到高度赞赏。
【问题讨论】:
-
“9.store in microservice local DB(本质上是read DB)”到底是什么?
-
它是读取微服务的读取数据库,例如 GET、GETALL 等。
-
看起来您正在将聚合状态保存在数据库中?什么是第 8 步?
标签: microservices domain-driven-design cqrs event-sourcing