À retenir
- Permet une communication asynchrone (sans attente immédiate).
- Garantit que les données ne sont pas perdues si le destinataire est temporairement hors ligne.
- Découple les applications : elles n'ont pas besoin de connaître les détails techniques l'une de l'autre.
Un système de messagerie est une infrastructure logicielle qui joue le rôle de facteur entre différentes applications. Au lieu que deux logiciels communiquent directement en restant bloqués l'un par l'autre, ils s'échangent des paquets d'informations (des messages) via une file d'attente, ce qui permet à chacun de travailler à son propre rythme.
Étymologie
Issu du français « messagerie » (transport de messages) et « système » (ensemble organisé). Initialement utilisé pour les télécommunications humaines, le terme s'est étendu au génie logiciel pour désigner les technologies de type Message-Oriented Middleware (MOM) apparues dans les années 80 pour relier des systèmes hétérogènes.
Exemples d'usage
- RabbitMQ : utilisé pour gérer des tâches en arrière-plan, comme l'envoi massif de factures PDF après une commande.
- Apache Kafka : employé pour traiter des flux de données géants en temps réel, comme les clics des utilisateurs sur un site web.
- Amazon SQS : un service cloud qui permet de faire communiquer des microservices de manière isolée.
Cas d'usage
Ce concept est indispensable dans les architectures de microservices pour éviter qu'une panne sur un service ne paralyse tout le site. On l'utilise aussi pour le traitement différé de tâches lourdes (compression d'image, calculs statistiques) ou pour diffuser une information à plusieurs destinataires en même temps (modèle publication-abonnement).
Bonnes pratiques
Il est crucial de gérer les Dead Letter Queues (files d'erreurs) pour ne pas perdre les messages qui échouent. Il faut également s'assurer que le traitement d'un message est idempotent : si un message est reçu deux fois par erreur, le résultat final doit rester le même sans créer de doublons.
Synonymes
Antonymes
Conseil
Si vous débutez, voyez cela comme une boîte aux lettres : vous postez votre courrier quand vous voulez, et le destinataire le relève quand il est disponible. C'est la base de la robustesse dans les grands systèmes modernes.
Questions fréquentes
Pourquoi ne pas simplement appeler une API directement ?
Si l'API est lente ou en panne, votre application plante aussi. Avec un système de messagerie, le message est stocké en sécurité jusqu'à ce que l'API soit à nouveau disponible.
Qu'est-ce que le 'Pub/Sub' ?
C'est un mode où un émetteur publie un message et plusieurs abonnés le reçoivent simultanément, comme une station de radio et ses auditeurs.
Est-ce que c'est fiable ?
Oui, la plupart des systèmes offrent des garanties de persistance, c'est-à-dire qu'ils enregistrent le message sur disque pour ne pas le perdre en cas de coupure de courant.