5
我得到CQRS的一般概念,但是當涉及到超越示例代碼和幻燈片套件以處理現實世界問題時,我有幾個問題。CQRS中的驗證和錯誤修復
驗證
當你需要做的是包括從數據庫檢查值的命令的驗證,你會怎麼做? 註冊服務,我必須輸入一個唯一的電子郵件地址。我聽到的一個說法是,用戶不太可能輸入重複的電子郵件地址,所以在處理命令時給他們發送一封說「抱歉」的電子郵件,或者建議他們重置密碼。這個過程因此避免了爲了驗證而具有讀取模型。但是,你如何處理命令處理程序中的重複案例?你怎麼知道它是重複的?檢查一個readmodel?你可能首先使用它來獲得更好的可用性。
功能更改/修正錯誤
,當你需要的方式來改變一個命令的作品,或者修正錯誤,會發生什麼?在僅追加哲學中,我如何處理所有舊命令和命令處理程序?我不能將它們重命名爲_legacy並隱藏它們,否則我的事件反序列化將不起作用。有什麼優雅的解決方案來解決這個問題?
感謝