События приложений в DDD?

Jan 01 2021

Этот вопрос аналогичен следующему: существует ли термин события приложения в DDD? , но я не знаю, как применить приведенные там объяснения к моей конкретной проблеме.

У меня есть, SearchFilmUseCaseи я хочу вызвать событие, как FilmSearchedEventтолько оно завершит свое выполнение. В настоящее время уровень приложения вызывает событие. Единственный способ, которым я мог вызвать это событие из домена, - это FilmRepository. Однако репозиторий - это просто интерфейс, поэтому я не могу создавать там никаких событий.

Я считаю, что поднимать событие на прикладном уровне некорректно. Как я могу подойти к этой ситуации?

Ответы

2 choquero70 Jan 03 2021 at 13:52

Одним из решений может быть создание службы домена для выполнения поиска и создания события.

1 Albert Jan 01 2021 at 20:09

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