MessagePattern vs EventPattern
NestJS 🔴 SeniorDéfinition
@MessagePattern attend une réponse (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 réception (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
Termes liés
En entretien
Quelle différence entre @MessagePattern et @EventPattern ?
@MessagePattern attend une réponse, c'est du request-reply, alors qu'@EventPattern est fire-and-forget sans réponse attendue. C'est comme envoyer un recommandé avec accusé de réception contre jeter une bouteille à la mer.
Quand est-ce que tu choisirais l'un plutôt que l'autre ?
MessagePattern pour des queries où j'ai besoin du résultat, comme récupérer un utilisateur, et EventPattern pour des notifications asynchrones comme la création d'un utilisateur qui déclenche l'envoi d'un email.
Quel est le piège si tu utilises MessagePattern à la place d'EventPattern ?
Tu bloques inutilement l'appelant en attendant une réponse pour un événement qui n'en a pas besoin, ce qui dégrade la performance du flux asynchrone.
Fiche mise à jour le 2026-09-27