gpt4 book ai didi

event-handling - 没有 CQRS 的领域事件和版本控制

转载 作者:行者123 更新时间:2023-12-04 20:47:26 25 4
gpt4 key购买 nike

嗨,我有以下 senario,我不明白如何获得最终的一致性:

  • 用户 1 使用基于任务的 ui 更改客户名称
  • 应用服务调用聚合操作
  • 客户名称上的聚合触发事件已更改
  • 总线使用 nservicebus 发送消息
  • NServicebus 服务挂掉
  • 用户 2 获取聚合并调用更改地址
  • 名为
  • 的聚合操作
  • 域事件触发
  • 上车留言
  • 总线重启
  • 第2条留言
  • 消息 2 已处理并使用新地址更新了其他有界上下文
  • 现在收到消息 1,这是错误的顺序
  • 现在会发生什么

  • 13中如果我们在事件中传递聚合的版本会不会出现乐观并发错误?

    如果是这样,消息 1 new 将应用于其他上下文中的对象。我们如何保持一致性?

    这是阻止我在我的域中应用事件的问题。欢迎所有帮助。

    基本思想是在另一个上下文中更新另一个聚合。我只是被困在这个并发技术上。

    在命令处理程序和总线上的命令推送的意义上,我们没有使用事件源或 CQRS。这只是我们希望异步发生的事件处理,因为我们有一个我们不想改变的现有设计。

    布莱尔

    最佳答案

    通常,您会将消息排队。如果他们进入队列,您将获得正确的排序。如果您想使用不支持服务总线排序的内容,请为您的事件添加一个序列号,以便另一方可以正确地重新排序它们。 TCP 自 1981 年以来一直在这样做 http://www.ietf.org/rfc/rfc793.txt :)

    关于event-handling - 没有 CQRS 的领域事件和版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174082/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com