Events 有没有一种方法可以在CQRS中组合查询和命令?

Events 有没有一种方法可以在CQRS中组合查询和命令?,events,cqrs,Events,Cqrs,我有一个使用CQR构建的项目,但我不知道如何实现一个用例 用户需要能够进行查询,该查询将返回一组数据供其查看。但是,我还需要保存他们同时获得的数据 有没有一种方法可以在查询中做到这一点而不违反CQR的原则?或者查询和命令需要是两个独立的API调用,一个接一个 有没有一种方法可以在查询中做到这一点而不违反CQR的原则 视情况而定 如果“保存数据”是指“对域模型进行一些更改”。。。那就太奇怪了 提问不应改变答案 另一方面,日志记录/遥测是跟踪应用程序活动的非常正常的方法,所以这应该没问题 在不可靠的

我有一个使用CQR构建的项目,但我不知道如何实现一个用例

用户需要能够进行查询,该查询将返回一组数据供其查看。但是,我还需要保存他们同时获得的数据

有没有一种方法可以在查询中做到这一点而不违反CQR的原则?或者查询和命令需要是两个独立的API调用,一个接一个

有没有一种方法可以在查询中做到这一点而不违反CQR的原则

视情况而定

如果“保存数据”是指“对域模型进行一些更改”。。。那就太奇怪了

提问不应改变答案

另一方面,日志记录/遥测是跟踪应用程序活动的非常正常的方法,所以这应该没问题


在不可靠的网络上,您需要注意一些问题(如果遥测系统不可用,行为应该是什么?记录没有实际到达客户端的查询(因为网络不可靠)会有什么后果.

正如@VoiceOfUnreason所述,在查询数据时影响域更改可能有些奇怪

然而,也许你可以在这一点上下功夫

例如,也许可以查询某种类型的预测。我们希望存储该预测。然后,似乎查询结果在我们必须保存结果。这似乎在某种程度上破坏了CQS,因为每个查询都会导致状态的更改


如果我们对其进行swop,首先通过域处理请求预测,然后生成一个结果,甚至是一个指向结果的指针,那么查询将是您可以对数据执行多次而不会“中断”的查询CQS。

在CQRS中,您的客户端可以执行命令和查询。该客户端不是UI的一部分

它可以是API端点处理程序,这将

  • 接收查询
  • 将其转发到查询端点
  • 等待答案
  • 向打电话的人发送答复
  • 发送命令以存储答案