2016-01-01 1 views
1

Я удалил несколько событий из моего магазина событий, но теперь я получаю исключение, как это:Как пропустить numbes последовательности в 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.

Как я могу игнорировать исключения, как это?

ответ

1

Вы не можете ..... Cirqus очень строг относительно своих порядковых номеров, чтобы гарантировать, что совокупные корни гидратированы до правильного состояния и невозможно гидратировать в какое-то состояние, в котором они никогда не были

Это означает, что если вам нужно «удалить» события, вы не можете просто удалить события из хранилища событий.

Я пробовал однажды, что некоторая логика пошла наперекосяк и случайно сгенерировала 50000 событий во время работы системы, и пользователи продолжали работать, а затем мы удалили путем репликации событий (используя EventReplicator) в новый магазин событий, украсив destination IEventStore с «переписывающим», который затем игнорирует определенные события и переписывает все порядковые номера по мере необходимости.

Было довольно трудно получить право, хотя.

Вам действительно нужно удалить события? Не можете ли вы, например. добавить некоторые корректирующие события в потоки событий проблемных совокупных корней?