0

我试图从今天创建的许多 CQRS 框架中学习。我看到当 AR 改变状态时,我们首先存储事件。一旦事件在事件存储中,我们将使用更改更新内存中的 AR 对象。我们这样做有什么理由吗?在大多数 CQRS 实现中,工作单元与使用内部静态对象的请求线程相关联。所以我的问题是,一旦事件存储在 eventstore 中,是否真的有必要更新内存中的 AR 对象?

我刚刚开始了解 CQRS 的世界,所以怀疑可能看起来很愚蠢。

4

2 回答 2

2

在事件处理程序中更新聚合允许从历史事件列表(EventStore)重新创建聚合。如果您在事件处理程序之外更新内部状态,您可能无法正确重建聚合。

于 2012-08-07T17:53:53.510 回答
0

也只是学习,但我相信您只需要在需要状态更新以进行进一步的业务决策时才需要内部状态更新。即:根据命令决定要触发什么事件。

当然,另一种方法是在每个接收到的命令上从事件存储中重建所需的状态,但我想保持内部状态可以看作是这个过程的一种缓存机制。

于 2012-08-06T21:59:12.113 回答