嗨,我有以下 senario,我不明白如何获得最终的一致性:
- 用户 1 使用基于任务的 ui 更改客户名称
- 应用服务调用聚合上的操作
- 客户名称上的聚合触发事件已更改
- 总线使用 nservicebus 发送消息
- NServicebus 服务终止
- 用户 2 获得聚合并调用更改地址
- 聚合操作称为
- 触发域事件
- 信息放在公共汽车上
- 巴士重新启动
- 消息 2 最先收到
- 消息 2 已处理,其他有界上下文已更新为新地址
- 现在收到消息 1,这是错误的顺序
- 现在会发生什么
在 13 中如果我们在事件中传递聚合的版本会不会出现乐观并发错误?
如果是这样,消息 1 new 将应用于其他上下文中的对象。我们如何保持一致性?
这是阻止我在我的域中应用事件的问题。欢迎大家帮忙。
基本思想是在另一个上下文中更新另一个聚合。我只是停留在这个并发技术上。
我们没有在命令处理程序和总线上推送命令的意义上使用事件源或 CQRS。这只是我们希望异步发生的事件处理,因为我们有一个我们不希望更改的现有设计。
布莱尔