EventEmitterModule

NestJS 🟡 Mid

Dé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.
#core#architecture

← → au clavier pour passer d'une fiche à l'autre