Eventi dell'applicazione in DDD?
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 SearchFilmUseCase
e desidero sollevare un evento FilmSearchedEvent
una 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
Una soluzione potrebbe essere quella di creare un servizio di dominio per eseguire la ricerca e generare l'evento.
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.