2010-08-01 79 views
5

我們正在嘗試CQRS和DDD以及事件採購。比方說,我有一個客戶更新了一個電子郵件地址,該地址觸發了CustomerUpdatesEmailAddress事件,這通過我的操作(寫入數據庫)並更新表格。我們的系統被設計成有一個運行ETL的進程,用於運行數據並更新數據庫(這是一個讀取數據庫)。由於ETL可以根據被更改的電子郵件地址進行一些繁重的工作(電子郵件地址就是一個例子),我們如何同步報告數據庫(DataMart和操作端),因爲用戶想要立即在屏幕上看到電子郵件地址更新?CQRS,DDD同步報告數據庫

回答

13

this podcast(幻燈片47例如)Udi Dahan指出客戶端不必等待讀取站點得到更新。客戶可以「僞造」它。因此,例如,如果用戶更改他或她的電子郵件地址,則客戶端可以從其發送的命令中獲取新地址,並在之前將其顯示給用戶,該命令實際上已經被處理。

+1

+1這個答案。提問「爲什麼用戶需要立即查看電子郵件地址?」更重要。如果是用戶反饋,那麼Mikael的答案應該足夠時間爲您運行ETL流程。 – stung 2010-08-19 17:26:25