如何使用CQRS处理MixedQuery?

时间:2015-05-19 15:39:47

标签: architecture cqrs event-sourcing

在正确分类的应用程序中,您可以将所有请求分离(仅更新聚合并返回void)和查询(从特定的读取优化模型中提取数据)。

但是如果你已经有一个繁重的应用程序,并希望慢慢将它移动到ES + CQRS路径,你可能会有修改和更新模型并返回所有结果的请求(如果你执行命令然后查询,几乎相同但是这将是2个请求)这就是混合查询的意思。

我知道这显然是理论上的问题,我在这里没有任何代码来证明它,但是

您如何使用CQRS处理此类请求?

2 个答案:

答案 0 :(得分:2)

您的"混合查询"超出CQRS的范围。我的答案是 - 如果你有这个,你没有CQRS。 CQRS意味着命令和查询隔离,这就是重点。

您不必立即将所有内容移动到新模型,您将拥有两个并行系统,并逐个移动到另一个系统。我强烈建议不要将旧东西混合到新模型中。

答案 1 :(得分:1)

看起来你基本上都在谈论牺牲Command-Query Separation,这是CQRS的先决条件,也是历史上最好的开发实践。

如果我要采用CQRS方法,那么在引入整个CQRS设备之前,我会通过符合CQS(如果有的话)启动,将查询与方法级别的命令分开。< / p>

您不必将其作为大爆炸返工,您可以通过功能切片进行功能切片,确保您具有高级自动化测试以确保重构。