【发布时间】:2019-02-27 03:48:40
【问题描述】:
我正在学习 CQRS 模式,因为我们将在新项目中使用它。到目前为止,我有几个问题:
示例任务:我将使用 cron 命令从不同的提供者(不同的 API)获取信息,这个 cron 命令的职责是:
- 从所有提供的数据中获取数据;
- 进行额外的 API 调用以获取图像和视频;
- 处理这些视频和图像(存储到 aws s3)并上传到数据库中的表;
- 从数据库中获取现有数据;
- 将新的 API 数据转换为系统实体,更新现有实体并删除不存在的;
- 持久化数据库。 ;
CQRS 相关问题:
- 我可以在一个系统请求中包含少量 CQRS 命令和查询吗?在上面的示例中,我需要从数据库中获取现有数据(查询)、持久化数据(命令)等等。
- 从 API 获取数据的逻辑如何?我可以将其视为 CQRS 查询,因为它是获取数据的过程,还是 CQRS 查询是从内部存储而不是外部 API 获取数据的唯一过程?
- 关于将视频存储到s3并将信息存储到uploads表的过程如何,我可以将资产存储到S3的过程视为CQRS命令,该命令将返回我稍后需要存储的数据以进行上传吗?我不想立即存储它,因为上传实体是聚合的一部分以存储主要信息,其中主要信息实体是主要聚合实体。我知道命令应该不返回任何内容或实体 ID,但在这里它将返回有关商店资产的所有数据
如果以上所有问题都是真的,那么我可以:
- 查询以获取 API 数据
- 查询以获取现有数据
- 处理图像/视频的命令
- 插入/更新/删除数据的命令
不要对我评价太严格,我正在学习 DDD 和相关模式的概念。我只是问我不清楚的问题。非常感谢
【问题讨论】: