EventEmitterModule

NestJS 🟡 Mid

Definition

Module pour la communication asynchrone intra-application via evenements. Les services emettent des evenements et les listeners les traitent de facon decouple.

Analogie

Comme un systeme de haut-parleurs dans un batiment : un message est diffuse et ceux concernes reagissent.

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

Decoupler les effets de bord (email, notifications) de la logique metier principale.

Anti-pattern

Utiliser des appels directs entre services pour des side-effects au lieu d'evenements.
#core#architecture