我遇到以下领域建模问题,最终似乎要么跨越一致性边界,要么创建一个巨大的集合。有人可以帮我分手吗?

有两种作业类型JobAJobBJobA由任务TaskA组成。 JobB由任务TaskB组成。 JobAJobB不相关。它们之间唯一的共同点是它们都需要设备资源。我本来想创建5个可以相互引用的聚合根-JobA将引用TaskA,依此类推。

我可以将一项工作及其任务汇总在一起。由于任务本身是复杂的生物,因此以引入其他开销为代价。但是,以下限制使我无法使用任何一种模型。

  • 如果任何任务仍未完成,则无法将作业标记为已完成。此检查会导致交易跨越汇总边界(例如TaskAJobA)。
  • 不能将设备分配给1个以上的作业。此检查将涵盖这两个作业汇总。
  • 必须先释放设备,然后才能将作业标记为完成。这项交易将跨越设备和工作总量。

  • 拥有一个汇总将把所有交易置于边界之内,但这将使汇总变得不可思议。在我遗漏的所有这些内容中是否隐藏着其他模型?

    最佳答案

    我认为最好的解决方案可能是使用最终一致性。

    当我对设计aggregates存有疑问时,我总是去看看Effective Agreggate Design by Vaughn Vernon

    10-04 11:20