我有以下領域建模問題,我似乎最終要麼穿越一致性邊界或創建一個巨大的聚合。有人能幫我分手嗎?穿越聚合邊界
有兩種工作類型JobA
,JobB
。 JobA
由任務TaskA
組成。 JobB
由任務TaskB
組成。 JobA
和JobB
是無關的。它們之間唯一的共同點是它們都需要設備資源。我本來想創建5個可能互相引用的聚合根 - JobA
將引用TaskA
等。
我都不可能把工作和任務在一個聚合。這是以犧牲其他開銷爲代價的,因爲任務本身就是複雜的生物。但是,以下約束阻止我使用任一模型。
- 如果任務仍不完整,則不能標記作業。此檢查會導致交易跨越集合邊界(例如,
TaskA
和JobA
)。 - 設備不能分配給多個作業。該檢查將跨越兩個工作總計。
- 必須先釋放設備才能標記完成作業。這筆交易將跨越設備和工作總量。
擁有一個單一的聚合將把所有交易放在邊界內,但這會使聚合不可能大。在我缺少的所有這些中隱藏着不同的模型嗎?
某些規則不能以實用的方式強烈一致,必須最終保持一致。 – plalx