Événements d'application dans DDD?

Jan 01 2021

Cette question est similaire à: Existe-t-il un terme d'événement d'application dans DDD? , mais je ne sais pas comment appliquer les explications qui y sont données à mon problème spécifique.

J'ai un SearchFilmUseCaseet je souhaite déclencher un événement FilmSearchedEventune fois qu'il a terminé son exécution. Actuellement, la couche application déclenche l'événement. La seule manière dont je pourrais soulever cet événement du domaine est dans le FilmRepository. Cependant, le référentiel n'est qu'une interface, je ne peux donc pas y soulever d'événement.

Je pense que déclencher l'événement au niveau de la couche application n'est pas correct. Comment aborder cette situation?

Réponses

2 choquero70 Jan 03 2021 at 13:52

Une solution pourrait être de créer un service de domaine pour effectuer la recherche et déclencher l'événement.

1 Albert Jan 01 2021 at 20:09

Tous les événements de domaine doivent être déclenchés à partir de la couche de domaine. Le meilleur endroit est une racine agrégée où l'action doit vraiment être effectuée. La racine agrégée peut contenir tous les événements de domaine qui ont été déclenchés et, dans la couche d'application, vous pouvez les obtenir et les publier sur le bus d'événements.