我正在實施一個使用域驅動設計的社交網絡。 我設計了包含用戶標識,用戶名,個人資料圖片等內容的配置文件上下文...在這種情況下,用戶可以更改他的用戶名 我也有一個消息傳遞上下文用於在用戶之間發送消息,在這種情況下我有一個包含userID和userName的用戶類,注意到用戶在一個聚集內。 問題是用戶名可以隨時在配置文件上下文中更改,這就是爲什麼我選擇不將用戶類與消息類綁定在一起,否則我會用老用戶名得到舊信息。 是否有一個意思,所以我可以每次通過詢問配置文件上下文來在消息傳遞上下文中獲取用戶,如果是,是否可以在聚合中使用查詢?DDD - 從其他環境中懶洋洋地獲取信息
0
A
回答
0
這是您第一次需要從一個BC到另一個BC獲取信息?如果不是,您的系統中的信息如何從一個BC傳播到另一個BC?
我發現通過BC進行信息交流的最佳方式是通過您的Domain對象發出的事件,讓您的BC訂閱這些事件並保留本地數據副本。在你的情況下,你會:
(假設配置文件BC發出一個'userNameChangedEvent')讓你的消息BC訂閱該事件,並讓它堅持'減少'版本的用戶 - 可能所有需要的是用戶ID和用戶名。這樣,當你的用戶發佈消息時,消息BC只是查詢自己的瘦用戶表,以獲得用戶名。
這種方法的一個注意事項是Eventual Consistency。也就是說,如果用戶更改他們的姓名,然後立即發佈消息......您如何確保在發佈消息之前在消息傳遞BC上更新了用戶名。
相關問題
- 1. 懶洋洋地創建流
- 2. 懶洋洋地生成powerset
- 3. Clojure懶洋洋地從文件中讀取隨機行
- 4. 懶洋洋地從大文件中提取行
- 5. 安裝字典懶洋洋地
- 6. 懶洋洋地詢問位置服務
- 7. 懶洋洋地創建發電機
- 8. 在clojure懶洋洋地構建套裝
- 9. 懶洋洋地創建獨立存儲
- 10. 懶洋洋地評價MySQL視圖
- 11. 搜索文本懶洋洋地
- 12. 的Perl,評估串懶洋洋地
- 13. RxSwift:如何使用shareReplay來懶洋洋地獲得訂閱
- 14. 如何使PDO(pdo_pgsql)懶洋洋地讀取行
- 15. 「懶洋洋地」提取REST數據的模式
- 16. 異常而加載懶洋洋地從實體
- 17. 消費懶洋洋的(連續)批次
- 18. 如何在WPF中懶洋洋地創建UI元素?
- 19. 懶洋洋地在Core Data中實例化關係?
- 20. 在Python中懶洋洋地轉換一個列表
- 21. 以紐尼克格式懶洋洋地打印一棵樹
- 22. 紅寶石 - 懶洋洋地評估的哈希
- 23. 春季數據REST - 無法加載懶洋洋地收集
- 24. 訪問懶洋洋地急於加載性能
- 25. 懶洋洋地分組在F#平坦的序列
- 26. 接線問題。 org.hibernate.LazyInitializationException:無法初始化懶洋洋地收集
- 27. 懶洋洋地創建Akka演員層次結構
- 28. 春天,休眠:未能懶洋洋地初始化集合
- 29. 未能懶洋洋地初始化一個角色集合
- 30. 我可以懶洋洋地加載swank嗎?
謝謝你現在更清楚了 –