MessagePattern vs EventPattern

NestJS 🔴 Senior

Definition

@MessagePattern attend une reponse (request-reply) tandis que @EventPattern est fire-and-forget (event-based). Deux paradigmes de communication inter-services.

Analogie

Comme envoyer un recommande avec accuse de reception (message) vs jeter une bouteille a la mer (event).

Exemple de code

// Request-reply: l'appelant attend une reponse
@MessagePattern('get_user')
getUser(data: { id: number }) {
  return this.userService.findOne(data.id);
}

// Fire-and-forget: pas de reponse attendue
@EventPattern('user_created')
handleUserCreated(data: UserCreatedEvent) {
  this.emailService.sendWelcome(data.email);
}

Cas d'usage

Utiliser MessagePattern pour les queries et EventPattern pour les notifications asynchrones.

Anti-pattern

Utiliser MessagePattern pour des events qui ne necessitent pas de reponse, bloquant inutilement.
#architecture#interview