【发布时间】:2016-09-19 22:59:27
【问题描述】:
我有一个聚合根,它是一个拣货和打包订单的计划。它将被分配一个托架,并且该托架必须是空的。
我将创建一个名为 AllocateToBay 的命令,该命令将指示应使用哪个托架。但是我应该如何从订单内部验证托架实际上是空的?
我在想我需要的是一个bay聚合根,我需要让bay将自己分配给订单。然后它可以引发一个事件,说它被分配给一个订单。然后我可能会有一个 saga 来监听这个事件,然后向命令发出命令,让它知道它也被分配了哪个托架。但是,我真的不觉得海湾应该是聚合根。
或者,我可以只“信任”该命令,并拥有一些监视事件以检测重复分配的东西,并且它可以发出一个命令来纠正任何重复分配(我猜这仍然是一个传奇)?这样,bay 至少不必是聚合根。
这一切似乎有点冗长,但我想不出更好的方法来做到这一点?
【问题讨论】:
标签: cqrs