gpt4 book ai didi

domain-driven-design - 在 CQRS(事件源)中,您是否需要事件存储中的全局序列计数器?

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

在尝试了解 CQRS(以及一般的 DDD)时,我遇到过两个事件发生在不同聚合上但它们的顺序具有域含义的情况。如果是这样,那么它们可能发生得如此接近以至于时间戳(如我所见的示例实现所使用的)无法区分它们,这意味着事件存储不包含域的“完整”表示,因为顺序存在歧义其中发生的事件。

例如,域可以触发 CustomerCreatedEvent适用于 Customer聚合,然后是 CustomerAssignedToAgent Agent 上的事件总计的。 CustomerAssignedToAgent如果事件发生在 CustomerCreatedEvent 之前,则事件没有意义,但通常这两种操作都可能由于一个操作而被触发,这使得时间戳很可能实际上是相同的。

所以我只是在糟糕地建模吗?是否应该出现跨不同聚合的事件顺序很重要的情况?或者您应该在您的事件存储中保留一个全局序列号,以便您可以确定事件发生的确切顺序?

最佳答案

我还找到了 this post by Greg Young在 domaindrivendesign 雅虎列表中:

Order is only assured per a handler within an aggregate root boundary.

There is no assurance of order between handlers or between aggregates.

Trying to provide those things leads to the dark side.

关于domain-driven-design - 在 CQRS(事件源)中,您是否需要事件存储中的全局序列计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948523/

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