ClientProxy

NestJS 🔴 Senior

Définition

Abstraction pour communiquer avec d'autres microservices via send() (request-reply) ou émit() (event-based). Injectée via ClientsModule. Pour les cas avances, unwrap() donne un accès direct a l'instance du driver sous-jacent (par exemple kafkajs.Producer ou ioredis) quand l'API standard de NestJS ne suffit pas.

Analogie

Comme un téléphone interne d'entreprise : tu appelles un autre service et attends (send) ou laisses un message (émit).

Exemple de code

@Injectable()
export class OrderService {
  constructor(@Inject('PAYMENT_SERVICE') private client: ClientProxy) {}

  processPayment(order: Order) {
    return this.client.send('process_payment', order);
  }
  notifyShipping(order: Order) {
    this.client.emit('order_shipped', order);
  }
}

Cas d'usage

Appeler des microservices distants depuis un service NestJS de façon découplé.

#architecture

Fiche mise à jour le 2026-09-27

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