我使用了prooph(https://github.com/prooph),所以我有了写模型,在其中存储了以下事件(聚合表):
当我使用命令在后台运行投影时:
php bin/console event-store:projection:run card_projection
我已阅读以下模型:
在我的后台应用程序之前,我有rest API,用于创建事件:
CardWasAdded
通过网址:
POST /cards
我收到代码201。
之后,我通过url刷新列表:
GET /cards
问题是有时投影无法处理此新事件。 所以问题是:
如何处理该问题?
答案 0 :(得分:3)
我的答案不是特定于Prooph的,但是以下是您可以在任何CQRS系统中使用的一些策略:
使用策略3和4,您可以使用某种服务器信令-套接字或类似的东西。您的读取模型可能能够确认它已更新。
答案 1 :(得分:0)
谢谢罗马的回答。
最后,我接受了读取模型已延迟的事实。
当我发布新资源时,在我的rest api中,我返回201和带有新创建的ID的json等。 我的前端应用程序基于POST新资源(POST / card)的响应,使用“ NEW”徽章将新记录作为新行添加到数据表中。
当用户刷新列表时,读取模型已准备就绪(因为建立新记录需要不到1秒的时间)。
最后,对于用户而言,记录是否来自
都没有区别。POST /卡
或
获取/卡
因此用户体验很好。