我正在致力於DDD項目,我目前主要關注兩個受損的環境,訂單和倉庫。如何解決Order和Warehouse有界上下文依賴關係?
令我困惑的是以下情況: 訂單跟蹤所有下訂單,倉庫跟蹤所有可用庫存。如果用戶對某個產品項目下了一個訂單,這意味着倉庫中該產品的一個更少的項目。我簡單地說明了這一過程,所以請耐心等待。
由於兩個領域模型被放置在不同的BC內,我目前依靠最終的一致性即。在一件物品被出售之後,它最終會從倉庫中移出。
不幸的是,這種情況導致了另一個用戶可能同時進行同一項目的另一個訂單的問題場景,並且它會顯示爲可用,直到最終的一致性踢球爲止。這是領域專家無法接受的。
所以IMO我堅持兩個選項
- 合併訂單和庫存(至少部分有關產品 庫存,倉庫可用單位)爲BC一個
- 有秩序BC(或微服務,如果您希望)取決於倉庫BC(微服務)以便拉動現有產品單元 可用
哪個選項確實跟隨DDD模板?有另一種出路嗎?
格雷格揚有一個有趣的觀察:當你正在考慮從亞馬遜的訂單,你不關心該項目是否有貨;你關心的是它何時可能到達。 https://www.youtube.com/watch?v=LDW0QWie21s&t=35m01s – VoiceOfUnreason