我使用prooph(https://github.com/prooph),所以我有了我的写模型,在这里我存储了如下所示的事件(聚合表):

当我使用命令在后台运行投影时:
php bin/console event-store:projection:run card_projection我读过的模型如下:

在我的后台应用程序前面,我有rest,在这里我创建事件:
CardWasAdded通过网址:
POST /cards我收到201码。
之后,我通过url刷新我的列表:
GET /cards问题是,有时这个新事件不是由投影处理的。所以问题是:
如何处理这个问题?
发布于 2018-08-20 12:01:49
我的回答不是prooph特定的,但以下是您可以在任何CQRS系统中使用的一些策略:
使用策略3和4,您可以使用某种服务器信令套接字或类似的东西。您的读取模型可能能够确认它已被更新。
发布于 2018-09-07 07:55:36
谢谢罗曼的回答。
最后,我接受了读模型有延迟的事实。
在rest中,当我发布新资源时,会返回201和json,并返回新创建的Id,等等。我的前端应用程序,基于来自POST新资源(POST /card)的响应,将新记录作为新行添加到数据表中,并带有“新”标记。
当用户刷新列表时,读取模型就准备好了(因为构建新记录需要不到1秒)。
最后,对于用户来说,记录是否来自
POST /cards
或
获取/cards
因此,用户体验是很好的。
https://stackoverflow.com/questions/51927793
复制相似问题