CQRS可以查询事件的来源吗?

时间:2016-03-14 15:10:52

标签: cqrs event-sourcing

通常在实施CQRS的谈话中,假设命令是事件的诱惑。但是,用户进行的查询可以是事件存储中创建的事件的来源吗?或者这样的动作(当我们需要一个反映查询的事件时)应该使用命令来实现吗?

1 个答案:

答案 0 :(得分:1)

  

但是,用户发出的查询是否可以作为事件存储中创建事件的来源?

不要向精灵求助,因为他们会回答“是”和“是”。

所以,“否”部分:查询的区别在于它们不会更改域模型。在CQRS实施中,查询由读取模型提供服务,甚至可能根本无法访问您的事件存储。

  

当我们需要一个反映查询的事件时

是的部分:没有法律规定你不能收集查询历史,并将其粘贴在你的活动商店中。

但是我很难过,因为我没有看到需要反映查询的事件的明显案例。这真的很奇怪。我的猜测是需要一个反映查询的事件,这暗示你的模型已经坏了。

通过探索需求的来源,您可以在此方面取得一些进展。

如果要求来自运营,分析,报告,可用性......那么域模型可能不是该信息的正确位置。

如果要求来自您的域专家(“我们需要捕获这些查询以便模型稍后支持正确的更改”),那么您应该确定哪个实体负责跟踪查询发生的情况,并向该实体发送适当的命令。