我们正在使用轴突框架版本3.4.2,并在我们的代码中发现了一个错误。该错误与未发布的丢失事件有关。解决方案是修复代码,但不能修复事件存储和视图。
我的问题是如何解决这个问题?我们曾考虑将事件追加到事件存储中(我们使用JDBC事件存储),但是如果没有正确的数据,将不会处理新事件。最好的办法是通过在轴突中发布事件并在轴突中处理所有细节,从而在应用程序中执行此操作,但这是一次性的纠正操作。
有没有办法将一次性事件“注入”轴突?
答案 0 :(得分:0)
Matt分享的评论从概念上讲是您应该做的。 因此,要解决您无意间引入的问题,您应该采取一种补偿措施,也就是一条命令。该命令将在您的命令模型中处理,将验证模型的状态并发布所需的事件。
此外,我假设您的此事件应源自汇总,对吗? 用Axon术语来说,这意味着您要发布一个域事件而不是一个常规的 event 。
尽管您可以在EventBus
上发布事件或直接在EventStore
中存储事件,但是通过该过程创建那些 domain事件相当复杂。
因此,当我开始讨论Matt Freeman对您的问题的评论时,无论是否使用Axon,补偿措施都是必经之路。
最后,请注意,Axon 4.2已经发布了一段时间。尽管Axon 3仍将进行bug修复,但这些都没有在去年发生。简而言之,Axon 3上没有任何积极的开发。因此,移植到最新版本将对您的项目有益。