0

該項目目前正在爲基於Java-Web堆棧(Spring,Hibernate,HTML5 ..)工作,正在使用Domain-Driven-Design原理進行設計和開發。我應該用域名事件設計一個會計系統嗎?

我們的團隊被要求實施會計系統,通過創建和存儲會計分錄來響應業務事件(如向客戶請求付款或接收付款)。 Martin Fowler的accounting patterns似乎主張使用基於事件的系統。所以我的問題如下:

  • domain events正確的方法來使用這個目的?
  • 如果是,與我們項目中實施新事件機制的時間相比,有哪些好處?

非常感謝您的幫助。

回答

2

會計在DDD說法中通常是下游有界的上下文。這意味着會計行爲是爲了響應來自其他系統的事件而創建的。正如你所指出的,馬丁福勒的會計模式也反映了這一點。

Udi描述的域事件基礎架構是否是正確的方法取決於您當前的系統是什麼樣子。 Udi描述的是直接從域實體發佈域事件的框架。如果這是你的首選方法,那就去做吧。你應該考慮的是1)所描述的框架不是微不足道的 - 你必須關心線程問題和事務處理,2)它在單個進程中處理髮布事件,如果你需要發佈到其他系統你將需要實現一個調度員。

重要的結論是領域事件本身的概念 - 表明在該領域發生了「有趣」的事情。事件驅動的建模方法論是其他方法的範式轉變。它們如何發佈並不重要。

+0

非常感謝您的回答。你是說Udi的方法不是微不足道的。你知道更容易實現的域事件系統嗎?此類事件驅動的建模方法對於下游有限上下文(如會計)有什麼好處? – fabien7474

+1

對於更簡單的封裝替代方案,您可以讓應用程序服務發佈事件而不是域對象。事件驅動方法的好處是它能更好地反映現實。 – eulerfx