EventEmitterModule
NestJS 🟡 MidDéfinition
Module pour la communication asynchrone intra-application via evenements. Les services émettent des evenements et les listeners les traitent de façon découplé.
Analogie
Comme un système de haut-parleurs dans un bâtiment : un message est diffuse et ceux concernes réagissent.
Exemple de code
// Emission
this.eventEmitter.emit('order.created', new OrderCreatedEvent(order));
// Listener
@OnEvent('order.created')
async handleOrderCreated(event: OrderCreatedEvent) {
await this.emailService.sendConfirmation(event.order);
}
Cas d'usage
Découpler les effets de bord (email, notifications) de la logique métier principale.
Anti-pattern
Utiliser des appels directs entre services pour des side-effects au lieu d'evenements.