Anwendungsereignisse in DDD?
Diese Frage ähnelt: Gibt es einen Anwendungsereignisbegriff in DDD? , aber ich weiß nicht, wie ich die dort gegebenen Erklärungen auf mein spezifisches Problem anwenden soll.
Ich habe ein SearchFilmUseCase
und ich möchte ein Ereignis FilmSearchedEvent
auslösen, sobald es seine Ausführung beendet hat. Derzeit löst die Anwendungsschicht das Ereignis aus. Die einzige Möglichkeit, dieses Ereignis aus der Domain auszulösen, ist die in der FilmRepository
. Das Repository ist jedoch nur eine Schnittstelle, sodass ich dort kein Ereignis auslösen kann.
Ich denke, dass das Auslösen des Ereignisses auf der Anwendungsebene nicht korrekt ist. Wie kann ich mit dieser Situation umgehen?
Antworten
Eine Lösung könnte darin bestehen, einen Domänendienst zu erstellen, um die Suche durchzuführen und das Ereignis auszulösen.
Alle Domänenereignisse müssen von der Domänenschicht ausgelöst werden. Der beste Ort ist eine aggregierte Wurzel, an der die Aktion wirklich ausgeführt werden sollte. Das aggregierte Stammverzeichnis kann alle Domänenereignisse enthalten, die ausgelöst wurden, und in der Anwendungsschicht können Sie sie abrufen und im Ereignisbus veröffentlichen.