Le bus de messages du Hub — NATS JetStream, des flux persistants entre programmes

Le Hub · Bus de messages

Un programme publie,
un autre prend la suite.

Un article collecté, un courrier reçu, une tâche assignée : l’événement est déposé dans un flux, et le programme qui doit réagir le lit à son rythme, sans rien perdre.

À quoi ça sert

Quand deux programmes doivent travailler ensemble, le plus simple est que l’un appelle l’autre. C’est aussi le plus fragile : si le second est arrêté, en mise à jour ou surchargé, l’appel échoue et le travail est perdu.

Un bus de messages découple les deux. Le premier dépose un message dans un flux (un stream) et passe à autre chose. Le second le lit quand il est prêt, et confirme qu’il l’a traité. Le message attend dans le flux tant qu’il n’est pas lu : un redémarrage ne perd rien.

Le Hub porte ce bus pour tous ses programmes : NATS, avec sa couche de persistance JetStream.

Ce qu’on voit à l’écran

La page Queues JetStream de la console du Hub thesocle.net : statut connecté, onze streams, et pour chacun ses sujets, ses messages, ses consommateurs et sa taille

L’écran est celui du Hub thesocle.net, au 2026-09-23. On y arrive par l’entrée Queues du menu.

Trois tuiles. Le statut : « Connecté ». 11 streams. Une tuile « Messages total » à 0, qui ne reflète pas le tableau : c’est le tableau qui fait foi.

Le tableau des flux. Chaque ligne donne le nom du flux, les sujets qu’il capte (par exemple mail.scan.> : tout ce qui commence par mail.scan.), le nombre de messages conservés, le nombre de consommateurs qui le lisent, et sa taille en octets.

On y lit deux familles :

  • des flux de la plateforme, prêts dès l’installation : APP_EVENTS, AUDIT, MAIL_EVENTS, MAIL_SCAN (les pièces jointes analysées par l’antivirus), NOTIFICATIONS ;
  • des flux d’applications : ALFRED (les tâches du majordome IA du Hub, 1 consommateur), THINGS_ASSIGNATION, MANDEV_SESSIONS, et trois flux de notre chaîne de veille : RSS_DIFFUSION (82 331 messages, 4 consommateurs, environ 4,5 Go), NEWS_DIFFUSION (422 messages, environ 24 Mo) et PRESS_DIFFUSION (114 messages, environ 9 Mo).

Chaque ligne a deux boutons : Voir, pour lire les messages sans les consommer, et Purger, pour vider le flux. Un bouton en haut à droite crée un stream.

Comment on s’en sert

On crée le flux

Un nom et les sujets qu’il capte. Ou on utilise un flux de la plateforme.

Le programme publie

Il dépose un message sur un sujet. Il n’attend pas que quelqu’un le lise.

Un autre programme consomme

Il lit à son rythme et accuse réception de chaque message traité.

On regarde

Un flux qui grossit sans consommateur, c’est un programme qui ne suit plus : cet écran le montre.

Sous le capot

Logiciel NATS 2.10 avec JetStream, dans un conteneur du Hub ; authentification requise
Worker nats_worker
Actions MCP create_stream, delete_stream, list_streams, get_stream_info, list_consumers, publish_message, peek_messages, get_message, delete_message, purge_stream, get_account_info, get_status, et socle_publish, socle_consume, socle_ack pour publier, consommer et accuser réception
Flux pré-provisionnés MAIL_SCAN, MAIL_EVENTS, APP_EVENTS, AUDIT, NOTIFICATIONS
Aussi par l’API Manager le service nats publié sur l’APIM (7 173 appels en 24 h le même jour)
Console /hub/nats

Les limites d’aujourd’hui

Un message n’est traité que si un programme lit le flux où il tombe. Publier sur un sujet qu’aucun flux ne capte, ou dans un flux sans consommateur, ne déclenche rien, sans erreur : c’est à vérifier à la mise en service de chaque échange.

Un flux conserve ses messages selon ses propres règles de rétention : un flux très actif grossit, et se surveille.

Des programmes qui doivent travailler ensemble ?

Retour en haut

Mentions légales · Confidentialité · Contact

© 2026 LMVI Conseil — SARL, SIREN 949 417 620 · [email protected]