для чтения. получается по логике я должен сделать 3 действия записи в бд по очереди(стрелками указаны зависимости): д1<-д2<-д3. причем если в какой то момент произойдет рассинхрон и д2 запишется раньше д1 то произойдет ошибка т.к. д2 ссылается на д1.
EventHandler асинхронны. иногда получается так что вылетает эта ошибка.
решение вижу в следующем: вместо того чтобы генерировать 3 команды в контроллере, я сгенерю первую команду и дождусь блокировкой в EventHandler записи в бд д1. потом сгенерю событие 2 и дожждусь блокировкой в EventHandler записи 2 и т.д. выглядит жутко.
есть какое то другое решение чтобы засинхронить запись в бд?
Не работал с Axon, но судя по докам, в нем есть инструменты для управления последовательностью обработки событий (SequencingPolicy)
Обсуждают сегодня