Я розміщую обробники подій домену в шарі домену як інтерфейс домену IDomainEventHandler
.
Приклад обробника подій домену - це політика, яка підписується на певну подію домену з метою ініціалізації нової транзакції (наприклад, щоб запустити нову команду домену), тому має сенс мати її в рівні домену, оскільки вона пов'язана з логіка бізнесу.
Ми можемо придумати приклад, коли замовлення підтверджено, і тому слід створити запит-рахунок. У нас відбулася подія OrderConfirmedEvent
, яка сталася. Політика в нашому домені буде відповідальною за підписку на цю подію та створення доменної команди, RequestInvoice
яка буде оброблятися командним обробником і відповідно до неї оброблятися.
Якби у нас був цей обробник подій у прикладному шарі, це означало б, що додаток, крім того, щоб оркеструвати дії користувача, виконував би деяку логіку бізнесу, яка видається невірною.
Однак у нас є