0
我最近一直在嘗試CQRS模式,並且在很多文檔中,似乎人們使用隊列將命令從應用程序外部發送到命令處理程序。CQRS應用中命令的數據格式/架構
我感興趣的一件事是人們發送命令的格式是什麼?我可以看到JSON是一種很好的表示格式,但是如何管理傳入命令的版本?
我假設有些東西需要從命令隊列讀取,反序列化命令的參數,然後通過CommandHandler實現執行它們。
我最近一直在嘗試CQRS模式,並且在很多文檔中,似乎人們使用隊列將命令從應用程序外部發送到命令處理程序。CQRS應用中命令的數據格式/架構
我感興趣的一件事是人們發送命令的格式是什麼?我可以看到JSON是一種很好的表示格式,但是如何管理傳入命令的版本?
我假設有些東西需要從命令隊列讀取,反序列化命令的參數,然後通過CommandHandler實現執行它們。
這是一個很好的問題。思考版本時需要考慮幾件事情。我喜歡遵循一系列原則:
但是,您可能只需要退休或完全不同的形式。在這種情況下,我喜歡使用修補程序。例如_V2
要記住的關鍵是保持命令的內容爲簡單類型。當你想要複雜的類型時,可能會有特殊情況,但我會盡量避免這種情況。
從長遠來看,更改命令不是一個問題(除非您記錄命令)而不是更改/版本化事件。
如果有幫助,我有關於版本控制事件的博客文章,而不會破壞您的事件流。你可以找到它:here
希望它有幫助!
感謝您的回答!當你在做CQRS時,你是否使用隊列來發送命令? – Aidos