聚合根是對外代表一組資料一致性的邊界物件。外部操作只跟聚合根互動、不直接碰內部的 entityvalue object;聚合根負責保證邊界內所有不變式在每次操作結束時成立。一致性的範圍就是聚合的邊界——邊界內是同一個事務、邊界外是最終一致。

概念位置

聚合根是本模組尚未展開的章節主題(模組 backlog)。目前在教學章中以例子形態出現:一個 POS 專案的商品從扁平結構長成雙層聚合——商品作為聚合根、規格作為子層——欄位歸屬的判準是「兩個規格會不會不同」(資料袋與領域模型)。聚合的邊界跟 entity 的生命週期邊界是兩個獨立的設計決策。

可觀察訊號

多個物件的修改必須一起成功或一起失敗、而這些物件目前散在不同的存取路徑——缺少聚合根把它們收在同一個一致性邊界裡。

設計責任

聚合根的邊界劃太大會把不相關的物件鎖在同一個事務、限制併發;劃太小會讓跨聚合的一致性問題推到應用層。邊界的判準是「哪些不變式必須在同一次操作內成立」。完整教學等 case 累積後展開。