从另一个有界上下文中检索CQRS命令端的数据

时间:2018-01-17 13:56:38

标签: architecture cqrs

我正在尝试首次实施CQRS,并且遇到的问题是我从外部系统接收数据,该外部系统的字段是字符串引用,例如用户名。我需要获取引用所涉及的ID,如果找不到该ID则拒绝。

ID来自一个单独的有界上下文,加载整个记录以获取ID似乎效率低下。我想知道是否有符合CQRS模式的方法只返回一个基于命令端名称/引用的ID,因为它看起来更像是一个查询问题(但也许我有点天真? )

1 个答案:

答案 0 :(得分:1)

我不认为这会引起任何疑问。 CQRS中的查询端主要用于读取客户端,但这并不意味着您无法在命令端内部查询。接收请求,查询某些数据(如事件存储/消息队列中的事件或任何其他类型的数据)并根据该数据采取某些操作(如是否引发事件)是绝对可以的。事实上,事件采购的整个想法依赖于查询旧事件并重新补充聚合的当前状态。

另一种方法而不是查询可能是您可以订阅由其他有界上下文引发的事件,特别是订阅包含引用ID的事件,并维护第一个中所有ID用户名对的列表服务。