Я пытаюсь реализовать быстрое событие из трех фаз:
- запустить и забыть (Событие -> сообщить B)
- , если полученное событие и некоторые события пропущены, событие воспроизведения изотправитель по его идентификатору (B обрабатывает события из потока A)
- простой поток по тегу с шаблоном Ask (A event -> ask B) и сохранением обработанного смещения.
В идеальном случаепервого (1.) достаточно
случаев 2. 3. пропустит уже обработанные события
случай 3. с cassandra backstore не так быстро (опрос с задержкой), так что если мы имееммного событий 2. будет реагировать на пропущенное событие по требованию (до 3. перехватывает это событие).
Все хорошо, я могу пропустить обработанные события по какому-то правилу, но если я воспроизведу все события с начала этогоне является правильным.Поэтому мне нужен порядковый номер, отправленный в команде и используемый для потоком идентификатора from
параметр .
Я нашел lastSequenceNr
, которое является максимальным числом сохраняемых событий (оно вычисляется из PersistentRepr для каждогообработчик событий в persistAll
).Так что, если persistAsync не используется , может ли это lastSequenceNr
использоваться в паре персистентных событий?Или есть какой-нибудь способ получить PersistentRepr для сохраняемого события в обработчике persist?