gpt4 book ai didi

domain-driven-design - kafka 中每个聚合根事件的单个或多个主题(流)

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

我的 Order聚合根能够发出多个 Event ,例如OrderCreated , OrderPaid , OrderCancelled .将所有类型的订单事件存储到单个 kafka 主题中并拥有 orderId 是否是好的设计?作为消息键,如建议 here ?或者我应该为每个人创建单独的主题吗?

单一主题的优点是保持事件的顺序,但消费者需要在他们的最后过滤一些事件。第二种方法的优点是消费者会更简单,因为他们可以订阅他们需要的确切主题,但构建 Order需要订阅多个主题,而它们并非以正确的顺序来自 kafka,因为它们来自不同的主题。

谢谢

最佳答案

我不确定是否有正确/错误的问题,但这是我的两便士的值(value):

  • 我的经验法则是每个有界上下文的主题,以在易于管理和听众接收到的事件数量之间取得平衡
  • 无论如何,事件都需要排序,以便它们以正确的顺序存储在 EventStore 中。将 sequenceId 添加到您的事件并使用 Resequencer(例如在 Camel 中)以确保监听器以正确的顺序处理事件。

  • 希望对您的项目有所帮助和好看。

    关于domain-driven-design - kafka 中每个聚合根事件的单个或多个主题(流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159703/

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