我试图从今天创建的许多CQRS框架中学习。我看到当AR改变状态时,我们首先存储事件。一旦事件在事件存储中,我们将使用更改更新内存AR对象。我们有没有理由这样做。在大多数CQRS实现中,工作单元与使用internalstatic对象的请求线程相关联。所以我的问题是,一旦事件存储在eventstore中,是否真的有必要更新内存中的AR对象?
我刚开始了解CQRS的世界,所以怀疑可能看起来很愚蠢。
答案 0 :(得分:2)
在事件处理程序中进行Aggregate更新允许从历史事件列表(EventStore)重新创建Aggregate。如果更新事件处理程序之外的内部状态,则可能无法正确重建聚合。
答案 1 :(得分:0)
只是学习,但我相信只需要进行状态更新以进行进一步的业务决策时,您只需要内部状态更新。即:根据命令决定要触发什么事件。
当然,替代方法是在每个收到的命令上从事件库重建所需的状态,但我想保持内部状态可以被视为此过程的一种缓存机制。