gpt4 book ai didi

cqrs - 准备 View 模型时如何 "join"两个聚合根?

转载 作者:行者123 更新时间:2023-12-03 23:53:45 25 4
gpt4 key购买 nike

假设 BookAuthor是我模型中的聚合根。

在读取模型中,我有表 AuthorsAndBooks这是由 Book.AuthorId 加入的作者和书籍列表

BookAdded事件被触发我想收到 Author数据新建AuthorsAndBooks线。

因为 Book是聚合根,有关 Author 的信息不包含在 BookAdded 中事件。我不能包括它,因为 Author root 没有 getter(根据有关 CQRS 和事件溯源的所有示例和帖子的指南)。

对于这个问题,我通常会收到两种类型的答案:

  • 丰富您的领域事件 包含事件处理程序中所需的所有数据。但正如我所说,我不能为聚合根做这件事。
  • 使用 View 模型中的可用数据 . IE。负载 Author从 View 模型并使用它来构建 AuthorsAndBooks排。

  • 最后一个有一些并发问题。当时在 View Model 中无法使用作者数据 BookAdded事件正在处理。

    你用什么方法来解决这个问题?谢谢你。

    最佳答案

    作为一般建议,让事件处理程序具有幂等性,并确保您可以处理乱序消息处理(通过重新排队或构建机制来填充缺失数据)。
    另一方面,请质疑为什么作者和书籍是如此绝望的聚合根源。也许您应该在添加一本书时从作者那里复制(f * 是“添加一本书”,这是一个命令如何)。问题在于所有这些虚构的例子。下降到现实世界,我怀疑你的问题存在。

    关于cqrs - 准备 View 模型时如何 "join"两个聚合根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045260/

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