Axon Framework - возможно ли иметь совокупный дескриптор команд из нескольких саг?

Я хотел бы использовать один агрегат для обработки команд из нескольких саг. К сожалению, если сага отправляет команду, пока агрегат занят обработкой другой команды, команда теряется, и в журнал записывается исключение AggregateNotFoundException.

Я могу использовать один агрегат для каждой саги, но я хотел бы знать, возможно ли это с одним агрегатом для всех саг.


person akir94    schedule 29.08.2017    source источник
comment
Теоретически (не только для аксона) это должно быть возможно, это вполне допустимый вариант использования, Aggregate может (и, скорее всего,) должен обрабатывать больше команд.   -  person Constantin Galbenu    schedule 29.08.2017


Ответы (1)


в Axon обработчик команд не интересуется источником команды. Следовательно, не имеет значения, отправляют ли команды несколько саг или имеется только один источник.

Я думаю, что проблема здесь больше связана с состоянием гонки. Если команда приводит к возникновению исключения AggregateNotFoundException, это означает, что команда, создающая агрегат, еще не была обработана.

Скорее всего, в модели / конструкции есть проблема, из-за которой возникают эти состояния гонки. Однако, чтобы судить об этом, мне потребуется гораздо больше информации о вашем дизайне и о том, чего вы пытаетесь достичь с его помощью.

person Allard    schedule 30.08.2017
comment
Спасибо, наверное, проблема. Я написал пример, в котором я создаю агрегат перед запуском саг, и он работает. Я считаю, что смогу решить проблему дизайна самостоятельно. - person akir94; 03.09.2017