2011-12-20 26 views
0

我有一個設計問題,我認爲域事件將解決,但我需要確保我正在以正確的方式進行,並且正確理解域事件。這是在DDD中使用域名事件的正確方法嗎?

我在一個聚合根中需要更改另一個聚合根。

因此,當我在啓動聚合根中進行更改時,我將觸發一個將應用其他聚合根中的更改的域事件。如果一切順利,我有兩個數據庫事務將被保留。

現在,如果一個失敗(比如第二),我該如何解決這個或者第二個經歷,但我開始改變不能堅持?

我假定這是一個單用戶系統中,因此第二骨料第一啓動總之前所犯的一切都發生同步。

JD

回答

2

這取決於你如何在應用程序中組織工作的管理單位。在web應用工作單元中應該創建每個請求,在這種情況下,通常在http請求中有一個事務,它將在請求結束後提交或回滾。

當然,您可以創建兩個單獨的事務,但我不建議在您的Web應用程序中執行它。在這種情況下(如果我有這樣的要求)寧願使用消息架構(看看http://www.nservicebus.com/http://masstransit-project.com/

+0

感謝您的鏈接。 – 2011-12-22 16:41:41

+0

我正在查看DDDSample,它們具有用於聚合根之間進行通信的異步和同步方式的代碼。你認爲我可以使用嗎,還是應該使用你提到的消息體系結構? – 2011-12-23 08:33:10

+0

這取決於您的要求。從本質上講消息只是溝通的另一種異步方式,但最重要的是,它允許輕鬆,而不會丟失數據處理故障 – xelibrion 2011-12-25 07:30:48