假设基于CQRS架构的以下简单UC:
我们有一个管理商业对象的后端,让电影说.
- 该后端由2个微服务组成:CommandManager(创建/更新/删除电影)和QueryManager(查询电影)
- 我们有一个前端,提供用于创建新电影的网页,此操作自动引导到描述电影的另一个网页.
一个简单的方法是:
- 网页使用表单收集电影信息并将其发送到前端.
- 前端向CommandManager发出POST请求
- CommandManager将新影片写入数据存储区并返回影片键
- 前端使用此键对QueryManager进行GET
- QueryManager使用密钥在数据存储区中查找电影并将其返回.
- 前端提供带有电影信息的页面.
好的,现在我想以更多的事件驱动方式转换这个UC.这是新的流程:
- 网页使用表单收集电影信息并将其发送到前端.
- 前端使用新电影信息在BUS中写入消息
- CommandManager侦听总线并在数据存储区中创建新电影.最终,它在BUS中发布一条新消息,指定已创建新电影.
此时,由于这种流是异步的,因此前端不再等待响应.我们如何完成此流程以将用户转发到电影信息网页?在查询QueryManager之前,我们应该等待创建过程完成.
在一个更通用的术语中,在基于总线/事件的异步架构中,如何执行用于在网页中提供信息的Query?