【发布时间】:2015-12-21 19:00:55
【问题描述】:
关于 SO 的第一个问题(真的???),请多多包涵 :)
我们正在使用事件溯源构建解决方案。我们的一些业务流程将长期运行,因此我们计划使用 sagas 将命令编排到 几个聚合根。
据我了解,如果 saga 发出的命令失败,saga 将负责向所有先前调用的聚合根发出补偿命令。
如果聚合根的状态在外部(即由其他进程/用户)在参与saga,但 在 saga 失败并向该聚合根发出补偿命令?
换句话说,如何尝试补偿某个聚合根的事件流中的不是最后一个事件(用 EventStore 术语来说)?
【问题讨论】:
-
我想您可以依靠事件中的信息或 AR 本身的信息来查看补偿操作是否仍然可以发生。如果没有,那么您可能会启动一个需要手动解决冲突的过程。
标签: domain-driven-design cqrs distributed-transactions event-sourcing