我有問題DDD。我剛開始使用它,所以我沒有太多的經驗。 有兩個有界的上下文:維護和客戶端。每個客戶端都有一個引擎部分的列表。在維護中存儲公司,其職業是維修。客戶可以爲每個部分選擇首選公司。
管理員可以暫停公司。兩個總計有變化。首先,它改變了公司的地位,下一個公司應該從偏好它的客戶那裏移除。 處理它的最佳模式是什麼? 我可以在聚合中創建兩個處理程序,但是如何在處理程序中的一個引發異常時回滾更改?CQRS/ES - 改變兩個聚集處理的
0
A
回答
0
它看起來像你需要聚集修改您的一致性界限。
但是,如果修改後,你還需要改變你可以考慮一下,最終一致的系統和使用域名的事件一個交易兩個聚集處理的(但在CQRS你已經做到這一點,不是嗎?)。
Vaughn Vernon在他的書「Implementing Domain-Driven Design」中提出了處理最終一致性的下一個方法: 聚合發佈域事件被傳遞給一個或多個訂閱者。每個訂閱者都在自己的交易中執行(因此您仍然在交易中更改一個彙總)。如果事務失敗(訂閱者在超時時間內不確認成功)再次聚合發送消息或執行一些回滾例程。
由於您使用的事件採購可以標記「失敗」事件被否決,並使用Fowler's Retroactive Event mechanism。
相關問題
- 1. Django的聚集 - 兩個和
- 2. 預處理器宏改變了兩個目標
- 3. 處理兩個surfaceViews
- 4. Elasticsearch:如何使一個聚集場不會改變值
- 5. 從非聚簇更改主鍵聚集
- 6. CQRS/EventStore - 更改兩個聚合
- 7. 處理平臺遊戲中的兩個矩形的交集
- 8. 如何處理兩個容器視圖內的兩個集合視圖
- 9. 聚集在應用洞察分析的標量處理
- 10. 聚合 - 處理來自FUN兩列中的數據
- 11. 處理兩個事實表
- 12. 處理兩個並行
- 13. 在C#中處理可變集合鍵
- 14. VSTS - 如何處理變更集註釋?
- 15. 批處理文件集空變量
- 16. 具有兩個可變日期的批處理文件
- 17. 同時處理兩個物理按鈕
- 18. 騾子聚集 - 流聚集
- 19. 改變聚簇索引列
- 20. MongoDB - 2個集合中的聚集
- 21. 由兩個變量data.table(.SD)的子集
- 22. 處理集合的多個實例?
- 23. 在批處理文件試圖改變
- 24. 處理錯誤時改變域名
- 25. 改變不直接處理事件ReactJs
- 26. 值改變事件處理程序
- 27. 正確處理兩個WebException的問題
- 28. React.JS處理狀態中的兩個值
- 29. 如何將兩個聚集查詢合併成一個
- 30. 處理服務或DAO中的聚合
如果真的被刪除?如果它再次未被暫停?是否真的應該從客戶的偏好中獲益呢? :) – 2013-02-17 14:24:19
好的。也許這不是最好的例子。我考慮如何解決情況,當我必須對兩個聚合進行更改時,處理程序可能會拋出異常。 – Max 2013-02-17 15:43:38
聽起來像你有界的上下文需要修改。理想情況下,你不想在它們之間有依賴關係。 – stephenl 2013-02-17 22:27:29