我正在构建一个Web应用程序,用户可以编辑和共享笔记。用户应连接到具有角色(所有者,读取,读写)的笔记。这是一个偶尔连接的系统,所以我选择使用CQRS和事件源进行同步。按照Greg Young's presentation [36:20 - 38:40],流程如下:
问题是:“存储和前言”如何决定应向每个用户发送哪些事件?
显然,发送所有事件将损害其他用户的安全性。
由于您的客户端知道它显示的聚合,所以它只能告诉后端“嘿,自[timestamp]起,聚合ID [...]是否有事件?”。
reSolve框架使UI保持反应状态的方式-客户端为特定的aggregateId订阅事件,并通过websocket实时接收它们。
因此,您的问题的一个答案可能是“让用户询问他感兴趣的事件(aggregateId)”