Acara Aplikasi di DDD?
Pertanyaan ini mirip dengan: Apakah ada istilah peristiwa aplikasi di DDD? , tapi saya tidak tahu bagaimana menerapkan penjelasan yang diberikan di sana untuk masalah khusus saya.
Saya memiliki SearchFilmUseCase
dan saya ingin mengadakan acara FilmSearchedEvent
setelah itu menyelesaikan eksekusinya. Saat ini, lapisan aplikasi sedang meningkatkan acara tersebut. Satu-satunya cara saya dapat meningkatkan acara ini dari Domain adalah di FilmRepository
. Namun, repositori hanyalah sebuah antarmuka, jadi saya tidak dapat memunculkan acara apa pun di sana.
Menurut saya, menaikkan acara di lapisan aplikasi tidak benar. Bagaimana saya bisa mendekati situasi ini?
Jawaban
Salah satu solusinya adalah membuat layanan domain untuk melakukan pencarian dan meningkatkan acara.
Semua Peristiwa Domain harus dimunculkan dari lapisan domain. Tempat terbaik adalah akar agregat tempat tindakan harus benar-benar dilakukan. Akar agregat dapat berisi semua peristiwa domain yang telah dimunculkan, dan di lapisan aplikasi Anda bisa mendapatkannya dan memublikasikannya ke bus peristiwa.