Последний порядковый номер для персистентности в персистентном обработчике - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь реализовать быстрое событие из трех фаз:

  1. запустить и забыть (Событие -> сообщить B)
  2. , если полученное событие и некоторые события пропущены, событие воспроизведения изотправитель по его идентификатору (B обрабатывает события из потока A)
  3. простой поток по тегу с шаблоном Ask (A event -> ask B) и сохранением обработанного смещения.

В идеальном случаепервого (1.) достаточно

случаев 2. 3. пропустит уже обработанные события

случай 3. с cassandra backstore не так быстро (опрос с задержкой), так что если мы имееммного событий 2. будет реагировать на пропущенное событие по требованию (до 3. перехватывает это событие).

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

Я нашел lastSequenceNr, которое является максимальным числом сохраняемых событий (оно вычисляется из PersistentRepr для каждогообработчик событий в persistAll).Так что, если persistAsync не используется , может ли это lastSequenceNr использоваться в паре персистентных событий?Или есть какой-нибудь способ получить PersistentRepr для сохраняемого события в обработчике persist?

...