将事件追加到事件存储区

时间:2019-11-14 10:57:01

标签: cqrs axon

我们正在使用轴突框架版本3.4.2,并在我们的代码中发现了一个错误。该错误与未发布的丢失事件有关。解决方案是修复代码,但不能修复事件存储和视图。

我的问题是如何解决这个问题?我们曾考虑将事件追加到事件存储中(我们使用JDBC事件存储),但是如果没有正确的数据,将不会处理新事件。最好的办法是通过在轴突中发布事件并在轴突中处理所有细节,从而在应用程序中执行此操作,但这是一次性的纠正操作。

有没有办法将一次性事件“注入”轴突?

1 个答案:

答案 0 :(得分:0)

Matt分享的评论从概念上讲是您应该做的。 因此,要解决您无意间引入的问题,您应该采取一种补偿措施,也就是一条命令。该命令将在您的命令模型中处理,将验证模型的状态并发布所需的事件。

此外,我假设您的此事件应源自汇总,对吗? 用Axon术语来说,这意味着您要发布一个域事件而不是一个常规的 event

尽管您可以在EventBus上发布事件或直接在EventStore中存储事件,但是通过该过程创建那些 domain事件相当复杂。 因此,当我开始讨论Matt Freeman对您的问题的评论时,无论是否使用Axon,补偿措施都是必经之路。


最后,请注意,Axon 4.2已经发布了一段时间。尽管Axon 3仍将进行bug修复,但这些都没有在去年发生。简而言之,Axon 3上没有任何积极的开发。因此,移植到最新版本将对您的项目有益。