Eventos de aplicativos em DDD?

Jan 01 2021

Esta questão é semelhante a: Existe um termo de evento de aplicativo no DDD? , mas não sei como aplicar as explicações dadas lá ao meu problema específico.

Tenho um SearchFilmUseCasee desejo gerar um evento FilmSearchedEventassim que terminar sua execução. Atualmente, a camada de aplicativo está gerando o evento. A única maneira de levantar esse evento no Domínio é no FilmRepository. Porém, o repositório é apenas uma interface, então não posso gerar nenhum evento lá.

Acho que aumentar o evento na camada de aplicativo não é correto. Como posso abordar essa situação?

Respostas

2 choquero70 Jan 03 2021 at 13:52

Uma solução poderia ser criar um serviço de domínio para realizar a busca e gerar o evento.

1 Albert Jan 01 2021 at 20:09

Todos os eventos de domínio devem ser gerados da camada de domínio. O melhor lugar é uma raiz agregada onde a ação deve ser realmente executada. A raiz agregada pode conter todos os eventos de domínio que foram gerados e, na camada do aplicativo, você pode obtê-los e publicá-los no barramento de eventos.