CQRS应用程序中命令的数据格式/模式

时间:2016-03-23 05:26:04

标签: cqrs

我最近一直在尝试使用CQRS模式,在很多文档中,人们看到人们使用队列从应用程序向命令处理程序发送命令。

我感兴趣的一件事是人们发送命令的格式是什么?我可以看到JSON是一种很好的表示格式,但是如何管理传入命令的版本控制呢?

我假设有一些东西需要从命令队列中读取,反序列化命令的参数,然后通过CommandHandler实现执行它们。

1 个答案:

答案 0 :(得分:1)

这是一个很好的问题。在考虑版本控制时需要考虑一些事项。我喜欢遵循一系列原则:

  1. 永远不要重命名字段
  2. 永不删除字段
  3. 但是,您可能只需退休或完全不同的表格。在这种情况下,我喜欢使用post fix。例如_V2

    要记住的关键是将命令的内容保持为简单类型。当你想要复杂的类型时,可能会有特殊情况,但我会尽量避免这种情况。

    从长远来看,改变命令不是一个问题(除非你记录你的命令),而不是改变/版本化事件。

    如果它有用,我会在版本控制事件上发布一篇博文,而不会破坏您的事件流。你可以找到它:here

    希望它有所帮助!