【发布时间】:2021-02-10 12:12:54
【问题描述】:
我有一个使用 CQRS 的应用程序,在这个应用程序中存在聚合,例如用户视频标签,它们被持久化并将事件发送到查询端以持久化读取模型。
我想知道视频的观看次数和分享次数。因此,每次用户观看或分享视频时,我都想增加这些计数。如何只更新视频读取模型?因为在我的视频编写模型中,我没有观看次数和分享次数。我应该创建一个命令来发送事件并更新读取模型还是直接更新读取模型?
【问题讨论】:
我有一个使用 CQRS 的应用程序,在这个应用程序中存在聚合,例如用户视频标签,它们被持久化并将事件发送到查询端以持久化读取模型。
我想知道视频的观看次数和分享次数。因此,每次用户观看或分享视频时,我都想增加这些计数。如何只更新视频读取模型?因为在我的视频编写模型中,我没有观看次数和分享次数。我应该创建一个命令来发送事件并更新读取模型还是直接更新读取模型?
【问题讨论】:
查看和共享分析的有界上下文很可能与视频有界上下文正交。因此,这些事件由其他一些分析引擎处理和存储。
读取模型本身不应存储任何无法从真实来源重建的状态。 IE。您应该能够从头开始删除并重新创建读取模型(我不是在谈论它可能需要的计算资源)。但是读取模型可以(并且通常是)跨域。 IE。它查询数据的多个有界上下文。在您的情况下,它可能会查询视频和视频分析。
【讨论】: