何时以及由谁负责在基于 CQS 的用例的 DDD 架构中将来自 API GET 请求的数据缓存到本地数据存储中?
首先想到的是:
启动查询以从本地数据存储中获取一些数据,如果为空,则从 API 获取所需数据 -> 将其缓存到本地数据存储中 -> 将其返回
该解决方案似乎没有正确遵循 CQS,因为查询不应该改变数据存储(或者它们可以吗?)。
想到的第二件事:
执行命令以从 API 获取新数据 -> 更新数据存储 -> 引发数据更新事件 -> 事件处理程序侦听数据更新事件并执行新查询以获取新数据
第二种解决方案似乎更好地遵循 CQS 模式,但我不确定这些解决方案中的任何一个是否是在基于 CQS 的架构中处理数据缓存的正确方法。