首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CQRS模式问题

CQRS模式问题
EN

Stack Overflow用户
提问于 2018-09-23 11:31:26
回答 1查看 754关注 0票数 2

我正在学习CQRS模式,因为我们将在我们的新项目中使用它。到目前为止,我几乎没有什么问题:

示例任务:我将使用cron命令从不同的提供者(不同的API)中获取信息,这个cron命令的职责是:

  1. 从所提供的所有数据中提取数据;
  2. 进行额外的API调用,以获取图像和视频;
  3. 处理这些视频和图像(存储到aws s3)并上传到DB中的表;
  4. 从DB获取现有数据;
  5. 将新的API数据转换为系统实体,更新现有实体,删除不存在的;
  6. 持久DB。;

CQRS相关问题:

  1. 我能在一个系统请求中有几个CQRS命令和查询吗?在上面的示例中,我需要从DB (查询)、持久化数据(命令)等获取现有数据。
  2. 从API中获取数据的逻辑是怎样的呢?我可以把它看作是获取数据的CQRS查询过程还是CQRS查询--它是从内部存储而不是从外部API获取数据的唯一过程吗?
  3. 将视频存储到s3并将信息存储到上载表的过程如何,我是否可以考虑将资产存储到S3命令中的过程,并且这个命令将返回稍后需要存储的数据以进行上载?我不想立即存储它,因为上传实体是聚合的一部分,用于存储主信息,其中主信息实体是主聚合实体。我知道命令不应该返回任何东西或实体ID,但是在这里它将返回关于存储资产的所有数据

如果上面所有的问题都是真的,那么我可以:

  1. 获取API数据的查询
  2. 查询以获取现有数据
  3. 命令处理图像/视频
  4. 命令插入/更新/删除数据

不要太严格地评判我,我正在学习DDD的概念和相关的模式。我只问那些我不清楚的问题。非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-25 08:54:31

我能在一个系统请求中有几个CQRS命令和查询吗?在上面的示例中,我需要从DB (查询)、持久化数据(命令)等获取现有数据。

不,你不能。每个请求要么是一个命令,要么是一个查询。

从API中获取数据的逻辑是怎样的呢?我可以把它看作是获取数据的CQRS查询过程还是CQRS查询--它是从内部存储而不是从外部API获取数据的唯一过程吗?

命令和查询引用本地数据库。通过远程API从外部服务获取数据是与另一个BC的集成(参见DDD上下文映射模式)。

将视频存储到s3并将信息存储到上载表的过程如何,我是否可以考虑将资产存储到S3命令中的过程,并且这个命令将返回稍后需要存储的数据以进行上载?

将视频存储到s3不是命令,而是与外部服务的集成。您必须集成(同样是上下文映射模式)。

我不想立即存储它,因为上传实体是聚合的一部分,用于存储主信息,其中主信息实体是主聚合实体。

我不知道你的域模型,但是如果上传是一个集合中的子实体,那么在你的上传表中存储东西也不是命令。命令引用聚合。在上传表中存储信息将是命令的一部分。

作为结论:

命令或查询是应用层边界(应用程序服务)上的事务操作。他们处理来自你数据库的数据。每个命令/查询都是一个事务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52465669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档