Eventi dell'applicazione in DDD?

Jan 01 2021

Questa domanda è simile a: Esiste il termine dell'evento dell'applicazione in DDD? , ma non so come applicare le spiegazioni fornite al mio problema specifico.

Ho un SearchFilmUseCasee desidero sollevare un evento FilmSearchedEventuna volta terminata la sua esecuzione. Attualmente, il livello dell'applicazione sta generando l'evento. L'unico modo in cui ho potuto sollevare questo evento dal dominio è in FilmRepository. Tuttavia, il repository è solo un'interfaccia, quindi non posso sollevare alcun evento lì.

Penso che la generazione dell'evento a livello dell'applicazione non sia corretta. Come posso affrontare questa situazione?

Risposte

2 choquero70 Jan 03 2021 at 13:52

Una soluzione potrebbe essere quella di creare un servizio di dominio per eseguire la ricerca e generare l'evento.

1 Albert Jan 01 2021 at 20:09

Tutti gli eventi di dominio devono essere generati dal livello di dominio. Il posto migliore è una radice aggregata in cui l'azione dovrebbe essere realmente eseguita. La radice aggregata potrebbe contenere tutti gli eventi di dominio che sono stati generati e nel livello dell'applicazione è possibile ottenerli e pubblicarli sul bus degli eventi.