CQRS匹配事件和命令

时间:2013-04-09 00:01:19

标签: .net cqrs event-sourcing

我开始使用CQRS,我发现我的事件类定义几乎与1到1的命令定义相匹配。除了明显的代码重复之外,我正在试图弄清楚我做错了什么。肯定有些情况下事件与命令不匹配......但不是很多。

采用简单的CUD方案:

命令类:

  • CreatePost
  • UpdatePost
  • DeletePost

活动类:

  • CreatedPost
  • UpdatedPost
  • DeletedPost

对此有何建议?

我正在使用事件存储,如果这有任何区别。

感谢。

2 个答案:

答案 0 :(得分:5)

您通常不会将CQRS用于CRUD方案。有一些简单的工具和模式可以创建CRUDy应用程序。

CQRS为行为丰富的场景带来了许多优势,其中动词不是创建,读取,更新,删除,而是类似于真实行为。喜欢 PromoteEmployee BlacklistVendor

一旦开始对一个行为丰富的域进行建模,可能仍会有许多核心命令/事件 - 这不是一件坏事 - 但你也会发现命令和结果事件的大小都可能非常不同(包含数据)和数字。

答案 1 :(得分:1)

为了向Dennis Traub的回答添加一些内容,CQRS扩展了您将代码结构化为规范领域的方式,即UI如何工作。点并非所有UI都是CQRS友好的;你想要更多符合Task-based-UI's rather than CRUD-y UI's的内容。

从CRUD-y UI开始,您可能会在使用CQRS时感到沮丧。