我已经阅读了很多关于事件驱动架构的内容,这对我来说很有意义,但是给用户即时反馈的问题让我感到困惑。
假设有一个服务('EmployeeService')包含所有员工的列表。创建员工的业务逻辑位于此服务中。
另一个系统的 UI 使用此服务。要求是(无论您是否喜欢)它有一个员工网格,以及一个显示表单的“添加员工按钮”,当您提交表单时,它会将您返回到新员工所在的网格它。网格显示由服务计算的派生字段(这很重要!)。
传统上,在提交时,我会显示一个加载屏幕,同步发送一个 WCF 请求来注册员工,并在完成后转发到网格(现在肯定会有新员工)。
使用 EDA,在提交时,我会“触发并忘记”一个注册用户的命令 - 但是然后呢?我可以转发到网格,但有可能新员工可能还不在那里?假设一切正常,我可以手动添加到网格中,但是如何显示服务计算的派生数据?或者,如果尚未创建“新员工待定图形”,我可以在网格上显示它,然后让页面每隔几秒检查一次,直到它有?
这是一个常见的场景,那么常见的解决方案是什么?