NATS Transporter

NestJS 🔴 Senior

Définition

Transporteur de microservices NestJS pour NATS, migre depuis NestJS v12 vers le driver @nats-io/transport-node (NATS v3). Il supporte les queue groups pour repartir la charge entre instances et les wildcards de sujets (par exemple time.us.*) pour matcher des patterns dynamiques.

Analogie

Comme une bande FM : plusieurs récepteurs (queue group) peuvent écoûter la même fréquence (sujet) et se partager les messages sans double réception.

Exemple de code

const app = await NestFactory.createMicroservice(AppModule, {
  transport: Transport.NATS,
  options: { servers: ['nats://localhost:4222'], queue: 'orders_queue' },
});

@MessagePattern('time.us.*')
handleTime(@Payload() data: any) { /* wildcard */ }

Cas d'usage

Repartir la charge entre plusieurs instances d'un même microservice via un queue group NATS.

Anti-pattern

Oublier gracefulShutdown/gracePeriod, coupant des messages en cours lors d'un redéploiement.
#architecture#interview

En entretien

  1. Explique-moi ce qu'est le transporteur NATS dans NestJS.

    C'est un transporteur de microservices qui a migré depuis NestJS v12 vers le driver @nats-io/transport-node ; il supporte les queue groups pour répartir la charge entre instances et les wildcards de sujets pour matcher des patterns dynamiques. C'est comme une bande FM où plusieurs récepteurs peuvent écouter la même fréquence et se partager les messages.

  2. À quoi sert un queue group concrètement ?

    À répartir la charge entre plusieurs instances d'un même microservice qui écoutent le même sujet, sans que chaque instance reçoive le message en double.

  3. Comment tu debuggerais des messages perdus lors d'un redéploiement ?

    Je vérifierais d'abord si le gracefulShutdown/gracePeriod est bien configuré, parce que l'oublier coupe des messages en cours de traitement pendant le redéploiement.

Fiche mise à jour le 2026-09-27

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