2017-06-29 73 views
0

我正在實施一個使用域驅動設計的社交網絡。 我設計了包含用戶標識,用戶名,個人資料圖片等內容的配置文件上下文...在這種情況下,用戶可以更改他的用戶名 我也有一個消息傳遞上下文用於在用戶之間發送消息,在這種情況下我有一個包含userID和userName的用戶類,注意到用戶在一個聚集內。 問題是用戶名可以隨時在配置文件上下文中更改,這就是爲什麼我選擇不將用戶類與消息類綁定在一起,否則我會用老用戶名得到舊信息。 是否有一個意思,所以我可以每次通過詢問配置文件上下文來在消息傳遞上下文中獲取用戶,如果是,是否可以在聚合中使用查詢?DDD - 從其他環境中懶洋洋地獲取信息

回答

0

這是您第一次需要從一個BC到另一個BC獲取信息?如果不是,您的系統中的信息如何從一個BC傳播到另一個BC?

我發現通過BC進行信息交流的最佳方式是通過您的Domain對象發出的事件,讓您的BC訂閱這些事件並保留本地數據副本。在你的情況下,你會:

(假設配置文件BC發出一個'userNameChangedEvent')讓你的消息BC訂閱該事件,並讓它堅持'減少'版本的用戶 - 可能所有需要的是用戶ID和用戶名。這樣,當你的用戶發佈消息時,消息BC只是查詢自己的瘦用戶表,以獲得用戶名。

這種方法的一個注意事項是Eventual Consistency。也就是說,如果用戶更改他們的姓名,然後立即發佈消息......您如何確保在發佈消息之前在消息傳遞BC上更新了用戶名。

+0

謝謝你現在更清楚了 –