【问题标题】:Event Sourcing: eventually consistent bounded contexts事件溯源:最终一致的有界上下文
【发布时间】:2016-07-11 23:36:45
【问题描述】:

我正在寻找一个问题的答案,即当我使用事件溯源时,如何使两个有界上下文最终保持一致?我的意思是我将一些值从一个上下文的实体复制到另一个上下文的值对象的情况。我知道我可以在值更改时使用域事件来获取通知,但是如何更新我的事件存储中使用这些值的所有这些聚合?很难通过 id 以外的任何其他属性从事件存储中查询聚合。

例子:

身份上下文:

  • 用户(ID、用户名、密码、电子邮件)- 聚合根

讨论背景:

  • 作者 (id,userame) - 值对象(这些值来自身份上下文)
  • 消息(ID、内容、作者)- 聚合根

【问题讨论】:

    标签: domain-driven-design event-sourcing bounded-contexts


    【解决方案1】:

    我不确定将 (AuthorId, username) 设为值对象是否是一个不错的选择。

    • 用户名很可能不是消息聚合中的关键数据。基于用户名的聚合会强制执行什么不变量?

    • 您可能已经安装了 CQRS(不是吗?),因此可以通过读取模型而不是聚合本身来检索消息的用户名。

    我将在讨论上下文中创建一个独立的作者聚合,并让消息仅由 AuthorId 引用。当事件从 Identity 到达时,您只需通过 AuthorId 找到聚合并对其执行任何您需要执行的操作。

    【讨论】:

    • 我同意,这不应该是一个值对象,因为它有自己的身份。它是简化的实体。
    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多