Domain driven design 对多个聚合应用相同的操作

Domain driven design 对多个聚合应用相同的操作,domain-driven-design,Domain Driven Design,我有一个存货清单。它显示了什么产品在仓库中的哪个位置和数量。现在在UI上,我可以选择一个库存行并保留一些数量。稍后,我们需要实现多重选择的库存线并保留它们。假设我选择了2个聚合,我想保留这两个聚合。考虑到我已经实现了一个用例来保留1个聚合,最好的方法是什么。 1) foreach selected aggregate call后端的ReserveStockLine逐个。。。 2) 只发送一个带有所选聚合ID的命令,并将其视为一个完全独立的用例。如果这是一个单独的用例,我应该返回一些Reserva

我有一个存货清单。它显示了什么产品在仓库中的哪个位置和数量。现在在UI上,我可以选择一个库存行并保留一些数量。稍后,我们需要实现多重选择的库存线并保留它们。假设我选择了2个聚合,我想保留这两个聚合。考虑到我已经实现了一个用例来保留1个聚合,最好的方法是什么。 1) foreach selected aggregate call后端的ReserveStockLine逐个。。。 2) 只发送一个带有所选聚合ID的命令,并将其视为一个完全独立的用例。如果这是一个单独的用例,我应该返回一些ReservationResult和每个聚合的reservation结果?原因可能是smbdy else保留了相同的聚合,并且其数量不足(原因是用户在UI上看到的数量不是实际数量)。我的要求是尽可能多地保留。如果其中一个失败了,我就不必回滚其他进程……考虑如何在UI上以交互方式显示此过程。也许是一些复选框,它们显示了库存线是如何一个接一个地被预订的

只发送一个带有所选聚合ID的命令,并将其视为一个完全独立的用例

这是一种常见的方法。您“只是”迭代ID,并一次更新每个聚合ID

在快乐的道路上,这是相对直接的

为了避免争用,您可能最终需要更新自己事务中的每个聚合

在快乐的道路上,事情是相对简单的。但是当你开始考虑失败(如果应用程序在中间崩溃时会发生什么),那么事情就变得更有挑战性了。您可能需要确保对聚合的更新是幂等的,以便可以安全地重复丢失的命令