【发布时间】:2013-02-16 22:03:46
【问题描述】:
您好,我有以下情景,我不明白如何获得最终的一致性:
- 用户 1 使用基于任务的 ui 更改客户名称
- 应用服务调用聚合操作
- customername 上的聚合触发事件已更改
- bus 使用 nservicebus 发送消息
- NServicebus 服务终止
- 用户 2 获取聚合并调用更改地址
- 调用聚合操作
- 域事件触发
- 消息放在总线上
- 巴士重启
- 消息 2 先收到
- 消息 2 已处理,其他限界上下文已更新为新地址
- 现在收到消息 1,这是错误的顺序
- 现在发生了什么
在13中如果我们在事件中传递聚合的版本会不会出现乐观并发错误?
如果是这样,消息 1 new 将应用于其他上下文中的对象。我们如何保持一致性?
这是阻止我在域中应用事件的问题。欢迎大家帮忙。
基本思想是在另一个上下文中更新另一个聚合。我只是停留在并发技术上。
我们没有使用命令处理程序和总线上的命令推送意义上的事件溯源或 CQRS。这只是我们希望异步进行的事件处理,因为我们有一个我们不希望更改的现有设计。
布莱尔
【问题讨论】:
标签: event-handling domain-driven-design optimistic-locking eventual-consistency domain-events