Domain driven design CQRS-读取端的事件重播

Domain driven design CQRS-读取端的事件重播,domain-driven-design,cqrs,event-sourcing,Domain Driven Design,Cqrs,Event Sourcing,我读过几篇关于CQR的博客,所有这些博客都解释说,在写端,事件被持久保存在事件存储上,在请求时,事件被检索并在聚合上重播 我的问题是,为什么在读取端不需要对聚合进行事件重播?,因为您的读取端不使用聚合 读取端实现为投影,该投影根据聚合发出的事件流计算当前状态,并将当前状态保存在某个现有存储或内存中。读取端的while点是使当前状态随时可供客户端使用 我想给Jakub Konecki的解释添加一个例子 让我们假设您使用事件源为银行帐户建模。该帐户上的每个操作都会导致事件被持久化。几年后,你有数百个

我读过几篇关于CQR的博客,所有这些博客都解释说,在写端,事件被持久保存在事件存储上,在请求时,事件被检索并在聚合上重播


我的问题是,为什么在读取端不需要对聚合进行事件重播?

,因为您的读取端不使用聚合


读取端实现为投影,该投影根据聚合发出的事件流计算当前状态,并将当前状态保存在某个现有存储或内存中。读取端的while点是使当前状态随时可供客户端使用

我想给Jakub Konecki的解释添加一个例子

让我们假设您使用事件源为银行帐户建模。该帐户上的每个操作都会导致事件被持久化。几年后,你有数百个事件与该银行账户有关。现在,如果您想显示该帐户的余额,您会重播所有事件以计算余额吗?若有许多帐户,重放事件只是为了计算余额,这将是应用程序的性能瓶颈。我们甚至没有提到需要从银行账户显示和描述账户当前状态的其他信息


这就是为什么我们在读端存储聚合状态的快照,因为读端主要用于表示目的。我们希望系统的这一部分保持简单。

这是否意味着每次用户执行查询时都会重播事件存储,并在必要时更新读取端?在那种情况下,我不明白阅读方的观点+1.我在这里问了一个问题:如果你能看一下。如果出现某种故障,这些快照是什么时候拍摄的?你能看看我的问题吗?谢谢+1.