最近我在CQRS架構上閱讀了很多。關於爲什麼應該使用CQRS的一個最重要的觀點是可擴展性。CQRS如何爲更多可擴展的應用程序做出貢獻
現在我不太明白這是如何工作的。
比方說,你有你的typical
CQRS應用程序設計。
- 兩個數據存儲
- 一個用於指揮邊
- 一個用於查詢側面
- 當命令已處理的事件是發送可能更新第二數據存儲
這往往表示擁有一個用於查詢的數據存儲和一個用於處理命令的數據存儲會使您的應用程序更具可擴展性。 但是,如果存儲事件數據的第二個數據存儲庫需要響應查詢請求並且不斷需要基於傳入事件更新iteself,那麼這將如何工作?
爲什麼不在一個數據存儲中存儲命令,以及查詢端可以重新使用存儲的數據來獲取結果數據?
如果像neo4j這樣的圖形數據庫適合某些查詢,那麼您將添加一個neo4j數據庫,而不是使用相同的關係數據庫來提供這些查詢。這可以讓事情變得更快... ... ** Greg Young說:「錯誤的模型導致了巨大的意外複雜性」 – MaxSC
ES不是關於存儲事件。這是關於通過應用事件來改變對象狀態的。而CQRS在沒有ES的情況下效果很好。 – MikeSW
@MikeSW「ES不是關於存儲事件,而是通過應用事件來改變對象狀態。」 - 其實你錯了,我的意思是事件採購是一種存儲機制,它和我們用不同的詞語描述的方式一樣。 「而CQRS在沒有ES的情況下效果很好。」 - 沒有人說別的。 – inf3rno