【发布时间】:2018-07-10 08:48:18
【问题描述】:
在我的事件溯源模型中,我有一个以仓库为模型的聚合。为此,我发出了诸如CreateBox 和ChangeBoxLocation 之类的命令。
使用CreateBox 命令,我实现了它,使其与事件具有1:n 关系。也就是说,一个有效的CreateBox 命令将调度两个事件:BoxCreated 和BoxLocationChanged,因为添加的盒子应该被移动到一个位置。
我注意到系统的用户实际上是在批量向系统添加盒子。例如,可能有 300 个相同类型的盒子进来,他们会一次将它们全部扫描到系统中(而不是单独扫描每个盒子)。
这让我想到了实现CreateBoxesInBulk 命令的想法,如果该命令有效,将分派BoxCreated 和BoxLocationChanged N 次,其中N 是批量扫描的框数。
我的问题很简单,这是一种有效的方法吗?
另外:这会导致哪些潜在的并发症?我认为复杂性可能会受到此命令的影响,并且可能为聚合实现快照优化会是有益的。
【问题讨论】:
标签: architecture domain-driven-design cqrs event-sourcing