Les messages retenus simplement
Un message retenu est la memoire du broker sur un topic. Quand un abonne se connecte, il recoit immediatement la derniere valeur, meme si l’emetteur est hors ligne.
C’est ideal pour les topics d’etat : statut d’un appareil, configuration, derniere mesure. Les tableaux de bord paraissent instantanes.
Quand utiliser retained
Utilisez retained pour l’etat qui change peu : mode, disponibilite, dernier statut. Cela donne une vision stable du systeme.
Evitez de retenir de la telemetrie haute frequence. La valeur retenue peut etre perimee et induire en erreur.
Effacer une valeur retenue
Pour supprimer une valeur retenue, publiez un payload vide avec le flag retained. Le broker efface alors la valeur.
C’est utile quand un appareil est retire ou quand le topic ne represente plus un etat valide.
Last Will and Testament (LWT)
Le Last Will est un message publie par le broker si un client se deconnecte brutalement. C’est un filet de securite qui signale “cet appareil a disparu”.
Le LWT est essentiel pour la presence. Sans lui, on ne sait pas si l’appareil est offline ou simplement silencieux.
Retained + LWT ensemble
Un pattern courant : publier un statut “online” retained et definir un LWT qui publie “offline”. Quand l’appareil tombe, le broker envoie offline.
Les abonnes ont ainsi une vision fiable de la presence, meme en cas de deconnexion imprevisible.
Design des topics
Separez les topics d’etat des topics d’evenements. Les premiers sont stables et representent la valeur courante ; les seconds sont des evenements ponctuels.
Par exemple, `/devices/42/state` peut etre retained, alors que `/devices/42/events` ne devrait pas l’etre.
Pieges operationnels
Les valeurs retenues peuvent rester obsoletes si les appareils disparaissent. Utilisez le LWT ou des expirations cote consommateur.
Documentez quels topics sont retained pour eviter les malentendus chez les equipes.
