【发布时间】:2016-10-26 12:32:07
【问题描述】:
我正在尝试使用 CQRS/ES 架构设置 WebApp。 我已经定义了一个模型实体,带有创建和编辑命令/事件。 命令由相关的 Saga 处理。 事件被保存到 mongo 事件存储中,这是立即一致的存储。 事件由写入最终一致的 SQL 存储的非规范化程序处理。
现在我遇到了来自 WebApp 的应该同步 CRUD 操作的问题:用户打开一个包含这些实体列表的页面,从最终一致的 SQL 存储中读取。最初它是空的。 然后,用户编译一个表单来添加一个新实体。客户端对向总线发出 Create 命令的方法执行 ajax 调用,然后返回 void。
成功回调时(确实如此,因为发出命令没问题)客户端刷新实体列表。如果反规范化器仍未处理实体 Created 事件,并写入最终一致的 SQL 存储,则页面仍将显示一个空列表。 我想要的是一种让发出 Create 命令的方法等待非规范化器的方法。
我阅读了很多博客和资料,并且我认为这种同步与使用总线的想法背道而驰......但是这样的用户操作需要是同步的:如何向用户呈现“插入成功的!”然后仍然看到一个空列表??
我希望得到答案,因为这个用例对我来说似乎很基础......
【问题讨论】:
标签: synchronization cqrs rebus