我讀埃裏克埃文斯書約DDD,章骨料。聚合是否應該在數據庫中引入讀鎖?
當訂單/訂單行處理例如,它指出:
當兩個用戶保存他們的變化,訂單將被存儲在違反域模型的不變的 數據庫。一個重要的商業規則 已被打破。甚至沒有人知道。顯然,鎖定 單個項目並不是一個足夠的保障措施。 如果我們在時間鎖定了 整個訂單,問題就會被阻止。
我知道Aggregate的本質是用單個包裝的數據庫事務來保護不變量。
但是,是否應該在數據庫端上指定以防止潛在的併發問題(爭用條件),同時由多個用戶同時修改此聚合?
正在一個總量的收集在數據庫端的讀鎖一些元素的真正意義?
對此的任何澄清都會讓我開心。
或者,也許這是關於樂觀鎖定...不是讀取鎖定.. – Mik378