MessagePattern vs EventPattern
NestJS 🔴 SeniorDefinition
@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.