2012-08-06 37 views
0

我試圖從當今創建的許多CQRS框架中學習。我看到當AR改變狀態時,我們首先存儲事件。一旦事件存儲在事件存儲中,我們將更新內存AR對象。我們是否有任何理由這樣做。在大多數CQRS實現中,工作單元與使用內部對象的請求線程相關聯。所以我的問題是,事件存儲在事件存儲中後,是否真的有必要更新內存中的AR對象?爲什麼在CQRS中發生事件後更新AggreateRoot

我剛剛開始瞭解CQRS的世界,所以可能是疑惑可能看起來很愚蠢。

回答

2

通過事件處理程序中的聚合更新,可以從歷史事件列表(EventStore)重新創建聚合。如果更新事件處理程序之外的內部狀態,則可能無法正確重建聚合。

0

剛剛學習,但我相信只有當狀態更新需要進一步的業務決策時,您才需要內部狀態更新。即:根據命令決定要發射什麼事件。

當然,替代方法是從每個接收到的命令的事件庫重建所需的狀態,但我認爲保持內部狀態可以被看作是這種過程的一種緩存機制。

相關問題