Domain Event
Architecture 🟡 MidDefinition
Evenement significatif qui s'est produit dans le domaine metier. Nomme au passe (OrderPlaced, PaymentReceived). Declenche des reactions dans d'autres contextes.
Analogie
L'annonce au micro dans un magasin : 'Nouveau produit disponible en rayon 3' — tous les interesses reagissent.
Exemple de code
class OrderPlaced extends DomainEvent {
constructor(public orderId: string, public total: number) {
super('OrderPlaced');
}
}
order.addEvent(new OrderPlaced(order.id, order.total));
Cas d'usage
Decoupler les side effects (emails, analytics) de la logique metier principale.
Anti-pattern
Events nommes comme des commandes (CreateInvoice au lieu de OrderPlaced).