最近,我讀了很多關於CQRS,對我來說好像它緊密聯繫起來,以事件採購。CQRS與事件採購緊密相連嗎?
但是像這個回答說https://stackoverflow.com/a/9217461/277067 對我來說事件SOURING似乎有點太複雜/可怕的像我這樣的初學者(「什麼?我的對象目前的狀態被存儲在任何地方?」)。
所以我想知道他們是否確實被捆綁起來,或者是否有任何工具/名氣會幫助做cqrs(事件觀察者,命令處理程序)而沒有事件採購的複雜部分。
感謝
最近,我讀了很多關於CQRS,對我來說好像它緊密聯繫起來,以事件採購。CQRS與事件採購緊密相連嗎?
但是像這個回答說https://stackoverflow.com/a/9217461/277067 對我來說事件SOURING似乎有點太複雜/可怕的像我這樣的初學者(「什麼?我的對象目前的狀態被存儲在任何地方?」)。
所以我想知道他們是否確實被捆綁起來,或者是否有任何工具/名氣會幫助做cqrs(事件觀察者,命令處理程序)而沒有事件採購的複雜部分。
感謝
簡短的回答:沒有,CQRS和事件採購是不依賴於對方。不,CQRS和事件源不相互關聯,並且它們與域驅動設計(DDD)並不緊密結合。
如果你想用幾句話來定義CQRS,事件源和DDD是什麼,你可以拿出解釋如下(當然,它們是過度簡化的,但這正是這裏的要點):
他們每個人的作品,未經他人很好。例如,您可以使用DDD對域進行建模,然後在不使用CQRS或事件源的情況下實施它。您也可以在不需要DDD或CQRS的情況下進行事件採購。等等...
不過:這三個概念發揮得很好在一起,這就是爲什麼他們往往是一個簡單的句子內召集。所以,不,他們沒有彼此綁在一起,但他們相互結合很有意義。
下圖顯示它們如何彼此交互:
(該圖像被從documentation of wolkenkit,爲JavaScript和Node.js的一個CQRS和事件採購框架截取)
您可以使用CQRS沒有事件採購。在命令處理程序中,您正在使用某個存儲庫來獲取或保存聚合根的最後狀態。只需實現簡單的存儲庫,這將直接從數據庫保存和加載狀態。
不,他們都沒有太大的關係IMO,你可以找到我的理由,以一個相關的問題here
在一個簡短的答案中,我應該說:我們可以沒有事件採購的CQRS。但沒有CQRS我們就不能進行事件採購。總的來說,我們有3種CQRS:標準,事件採購和最終一致性。
http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/ - tl; dr:他們沒有被束縛。你也不需要工具。 – 2012-07-10 16:33:53