如何在 Circus 中跳过序号
How to skip sequence numbes in Cirqus
我从我的事件存储中删除了一些事件,但现在我得到了这样的异常:
System.ApplicationException: Tried to apply event with sequence number 180 to aggregate root with ID 55b43b9e-cd9a-4db9-9b86-78feb7043051 with current sequence number 15. Expected an event with sequence number 16.
如何忽略这样的异常?
你不能.....Cirqus 对其序列号非常非常严格,这是为了保证聚合根被水合到正确的状态,并且不可能水合到它们实际上从未存在过的某种状态英寸
这意味着如果您需要 "delete" 个事件,您不能只从事件存储中删除事件。
我试过一次,当系统 运行 并且用户继续工作时,某些逻辑出错并意外生成了 50000 个事件,然后我们通过复制事件(使用 EventReplicator
) 到一个新的事件存储,用 "rewriter" 装饰目的地 IEventStore
,然后将忽略某些事件并根据需要重写所有序列号。
虽然很难做到正确。
您真的需要删除活动吗?你不能,例如将一些纠正事件附加到有问题的聚合根的事件流中?
我从我的事件存储中删除了一些事件,但现在我得到了这样的异常:
System.ApplicationException: Tried to apply event with sequence number 180 to aggregate root with ID 55b43b9e-cd9a-4db9-9b86-78feb7043051 with current sequence number 15. Expected an event with sequence number 16.
如何忽略这样的异常?
你不能.....Cirqus 对其序列号非常非常严格,这是为了保证聚合根被水合到正确的状态,并且不可能水合到它们实际上从未存在过的某种状态英寸
这意味着如果您需要 "delete" 个事件,您不能只从事件存储中删除事件。
我试过一次,当系统 运行 并且用户继续工作时,某些逻辑出错并意外生成了 50000 个事件,然后我们通过复制事件(使用 EventReplicator
) 到一个新的事件存储,用 "rewriter" 装饰目的地 IEventStore
,然后将忽略某些事件并根据需要重写所有序列号。
虽然很难做到正确。
您真的需要删除活动吗?你不能,例如将一些纠正事件附加到有问题的聚合根的事件流中?