Wydarzenia aplikacji w DDD?
To pytanie jest podobne do: Czy istnieje termin zdarzenia aplikacji w DDD? , ale nie wiem, jak zastosować podane tam wyjaśnienia do mojego konkretnego problemu.
Mam SearchFilmUseCase
i chcę wywołać zdarzenie FilmSearchedEvent
po zakończeniu jego wykonywania. Obecnie warstwa aplikacji podnosi poziom zdarzenia. Jedyny sposób, w jaki mogę zgłosić to zdarzenie z domeny, to FilmRepository
. Jednak repozytorium to tylko interfejs, więc nie mogę tam wywołać żadnego zdarzenia.
Myślę, że podnoszenie zdarzenia w warstwie aplikacji nie jest poprawne. Jak mam podejść do tej sytuacji?
Odpowiedzi
Jednym z rozwiązań mogłoby być utworzenie usługi domeny w celu przeprowadzenia wyszukiwania i wywołania zdarzenia.
Wszystkie zdarzenia domeny muszą być wywoływane z warstwy domeny. Najlepszym miejscem jest zagregowany katalog główny, w którym należy naprawdę wykonać akcję. Zagregowany katalog główny może zawierać wszystkie zgłoszone zdarzenia domeny, aw warstwie aplikacji można je pobrać i opublikować w magistrali zdarzeń.