我目前停留在一个问题,希望你能帮助我的一些想法或在这里的最佳实践...事件采购,最终一致,CQRS
比方说,我有使用事件采购和CQRS的应用程序。我有
- 含有数
- 含有数
- 其中I定义的设置,从该锅应显示在UI数红色锅绿色锅。要被显示 包含数字
- 甲计算结果
我的应用程序的当前状态是
- 红锅:10
- 绿色罐20
- 环境:红
- 结果:10(来自红罐的值)
我有一个订阅Red Pot服务,Green Pot服务和设置服务的计算服务。我有一个View Updater服务,该服务额外订阅了计算服务,并更新了所有更改的读取模型。
现在下面的事件都在下降:
- 绿色盆栽:25
- 默认设置:绿色盆栽
的视图更新服务是今天有点忙,并在更新一些延迟视图模型。
Calculation服务处理Green Pot事件。它从读取模型(仍然设置为红色)获取设置,并且不执行任何操作。
之后,Calculation服务处理设置事件。它从读取模型中读取绿色值(仍为20)并发送新事件(结果:20)
之后,View Updater处理两个事件并更新读取模型。
在这种情况下,我的应用程序不一致 - 甚至最终都没有。
有没有想过如何处理这样的事情?感谢您的任何想法:-)
您应该更改事件的名称以更明确,如'GreenPotUpdated','RedPotUpdated'和'SettingsChanged' –