Php 在PROOPH中通过投影创建的读取模型中等待新记录
我使用prooph(),所以我有我的写模型,在这里我存储事件,如下所示(聚合表): 使用命令在后台运行投影时:Php 在PROOPH中通过投影创建的读取模型中等待新记录,php,cqrs,event-sourcing,prooph,Php,Cqrs,Event Sourcing,Prooph,我使用prooph(),所以我有我的写模型,在这里我存储事件,如下所示(聚合表): 使用命令在后台运行投影时: php bin/console event-store:projection:run card_projection 我读过如下模型: 在我的后台应用程序前面有rest API,我在其中创建事件: CardWasAdded 通过url: POST /cards GET /cards 我收到代码201 之后,我通过url刷新我的列表: POST /cards GET /ca
php bin/console event-store:projection:run card_projection
我读过如下模型:
在我的后台应用程序前面有rest API,我在其中创建事件:
CardWasAdded
通过url:
POST /cards
GET /cards
我收到代码201
之后,我通过url刷新我的列表:
POST /cards
GET /cards
问题是,有时这个新事件不是通过投影处理的。
因此,问题是:
如何处理该问题?
我的回答不是针对prooph的,但以下是一些您可以在任何CQRS系统中使用的策略:
在策略3和4中,您可以使用某种服务器信号-套接字或类似的东西。您的read模型可能能够确认它已更新。谢谢您的回答 最后,我接受了读取模型有延迟的事实 在我的RESTAPI中,当我发布新资源时,我返回201和json以及新创建的Id等等。 我的前端应用程序基于来自POST新资源(POST/card)的响应,将新记录作为新行添加到数据表中,并带有“new”标记 当用户刷新列表时,读取模型已准备就绪(因为创建新记录所需时间不超过1秒) 最后,对于用户来说,记录是否来自 邮递/明信片 或 得到/得到卡片
因此,用户体验很好是@RomanEremin的完美答案。在prooph的示例应用程序中,您发现应用了策略1,请参见应用程序本身接受读取模型更新可能需要更长时间这一事实。在这种情况下,它会通知用户并请求刷新页面。