1

有没有办法在某个序列号之后删除消息Akka.net?我知道DeleteMessages(seqNumber)删除某个序列号之前的所有消息,有没有办法在 a 之后删除seqNumber?主要目标是恢复到以前的状态(也许这些消息是错误创建的)。

显然可以手动编辑数据库(或将这些事件的 is_deleted 设置为 true),但我不确定这是否是个好主意。

谢谢

4

1 回答 1

2

DeleteMessages(seqNr)仅出于节省空间的目的而存在,以防您将事件溯源与快照一起使用,并且您的系统可以容忍不完整的事件历史记录。

删除事件是违反事件溯源的概念。事件的目的是描述已经发生的事实。您无法更改过去,因为可能已经有其他一些来源已经读取了该事件并更新了某些状态/根据它执行了操作。

纠正事件源系统中事件的影响通常归结为产生一个补偿事件,这将逆转您想要修复的事件的影响。

于 2018-04-16T05:21:08.237 回答