gpt4 book ai didi

cqrs - CQRS 事件存储的结构

转载 作者:行者123 更新时间:2023-12-03 23:30:16 24 4
gpt4 key购买 nike

我目前正在尝试了解如何构建事件存储的内部结构。到目前为止我得到了什么:

  • 一个事件存储有两个表(集合,...),一个用于聚合,一个用于事件。
  • 聚合表包含以下数据:aggregateId (可能是一个 GUID)和 aggregateVersion (它是一个整数,仅表示影响此聚合的最后一个事件的数量)。
  • 事件表包含以下数据:eventId (又是一个 GUID),aggregateId (事件所属),payload , 和 version (它只是一个描述事件顺序的整数)。

  • 到目前为止这是正确的吗?
    是否应该使用整数对事件进行排序?还是应该根据时间戳对它们进行排序?各有什么优势?有什么缺点?

    最佳答案

    我建议你看看Jonathan Oliver's EventStore以供引用。

    在 SQL 持久化版本中,只有一张表。您可以轻松地在没有聚合表的情况下生活,并将聚合 ID 存储在事件表中。可以使用 max() 查询来检索最新版本。

    除此之外,我认为您应该考虑在事件表中添加标题,因为总是有一些有趣的元数据您不想存储在事件本身中。

    而且,我认为您应该在事件表中添加一个日期列。

    最后,您可能希望有某种标志来说明事件是否已被下游调度。此添加使您能够在一个线程或进程中写入并在另一个中分派(dispatch)。

    Aaand 那里,我有点建议 Jonathans EventStore 的结构。

    关于cqrs - CQRS 事件存储的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530310/

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