在我們的應用程序中,當域模型中的某些內容發生變化時,我們提出域事件。由事件處理程序執行的一些任務必須在引發事件時使用的同一事務內完成,其他任務必須在此事務之外執行。域名事件是否應該在交易內部或外部引發?
例如,
當訂單項目被添加到順序的實體,所述OrderLineAdded域事件引發,一個域事件改變域模型(因此必須在同一事務中執行)的狀態,然後當交易完成後,UI必須更新。
你會如何解決這個問題?
- 引發兩個事件,一個在事務中,另一個在事務之外。
- 在事務內部引發事件,但使用事件處理程序發送異步請求以更新UI?
方案1還是很迷惑,因爲事件名稱必須以某種方式傳達他們或退出交易的,但與選項域事件的處理2必須始終認爲他們是從一個事務中同步調用。
也許有更好的方法?
這聽起來像是一個很好的解決方案,您如何命名事件以區分事務性事件和非事務性事件? – Andronicus 2011-01-19 15:22:26