添加最新数量值作为事件源事件的一部分

Adding latest quantity value as part of event source event

根据我的理解,我必须通过遍历给定聚合器的所有事件来“构建”系统的最新状态。如果我需要找到产品的最新数量,我必须遍历从特定项目增加或减少数量的每个事件。但是,我可以将该产品的“最新”数量附加为给定事件的一部分吗?因此,我可以使用 {added: 3}、{deducted: 1} = 2 等事件,而不是使用 {added: 3, available: 3}, {deducted: 1, available: 2} 这样我就可以抓住商店中的最后一个事件,而不是遍历所有事件或保留快照。这是否违反“规则”?可能的影响是什么?

一般规则是事件不应包含计算值,但同时它是复杂性和易用性之间的权衡。

如果性能有问题,另一种方法是依赖快照。但是,在我的案例中,阅读端可以为您处理这些汇总的问题。您也不应该担心必须加载一组事件才能到达给定聚合的当前状态。