Saya menempatkan Penangan Kejadian Domain di lapisan Domain sebagai antarmuka domain IDomainEventHandler
.
Contoh dari pengendali acara domain adalah kebijakan yang berlangganan acara domain tertentu untuk menginisialisasi transaksi baru (misalnya: untuk memicu perintah domain baru), oleh karena itu masuk akal untuk memilikinya di lapisan Domain karena itu terkait dengan logika bisnis.
Kami dapat memikirkan contoh di mana pesanan dikonfirmasi dan oleh karena itu permintaan faktur harus dibuat. Kami memiliki peristiwa OrderConfirmedEvent
yang telah terjadi. Kebijakan di domain kami akan bertanggung jawab untuk berlangganan acara ini dan membuat perintah domain RequestInvoice
yang akan ditangani oleh penangan perintah dan ditangani sesuai dengan itu.
Jika kita memiliki event handler ini di lapisan aplikasi, itu berarti lapisan aplikasi, selain mengatur tindakan pengguna, akan menjalankan beberapa logika bisnis, yang tampaknya tidak benar.
Bagaimanapun kita punya