File de messages
Une file de messages est un système qui stocke des messages (tâches ou événements) envoyés par des producteurs et les transmet à des consommateurs pour traitement, découplant ainsi les deux et permettant une communication asynchrone et fiable entre composants du système.
Comprendre File de messages
Les files de messages résolvent un problème fondamental des systèmes distribués : comment transférer de façon fiable du travail entre composants lorsque les deux parties peuvent être indisponibles en même temps ? Sans file d'attente, si le worker est occupé ou hors ligne lorsqu'une tâche arrive, elle est perdue. Avec une file, la tâche est stockée jusqu'à ce qu'un worker soit disponible pour la traiter. Le modèle producteur-consommateur est simple : un producteur (serveur web, gestionnaire de webhooks, action utilisateur) place un message dans la file. Un consommateur (worker en arrière-plan) prend les messages de la file et les traite. Plusieurs producteurs et consommateurs peuvent fonctionner en même temps et évoluer indépendamment. Les systèmes de file de messages les plus connus incluent RabbitMQ (complet, supporte des routages complexes), Redis (léger, rapide, utilisé pour des files simples), AWS SQS (géré, sans serveur) et Apache Kafka (streaming à haut débit). GAIA utilise RabbitMQ pour des routages complexes et Redis/ARQ pour des tâches d'arrière-plan plus simples. Les files de messages permettent une gestion souple des pics de charge. Si 1000 événements webhook arrivent simultanément, ils sont mis en file immédiatement et traités au rythme que les consommateurs peuvent gérer : aucun événement n'est perdu et le système ne s'effondre pas sous la charge.
Comment GAIA utilise File de messages
GAIA utilise RabbitMQ pour acheminer les événements entre les composants du système et ARQ (Async Redis Queue) pour l'exécution des tâches en arrière-plan. Lorsqu'un e-mail arrive ou qu'un déclencheur d'automatisation s'active, l'événement est immédiatement placé dans la file et traité par des travailleurs en arrière-plan. Cette architecture garantit qu'aucun événement n'est perdu lors des périodes de forte charge et permet une logique de réessai fiable.
Concepts liés
Webhook
Un webhook est un mécanisme de rappel HTTP par lequel un système envoie automatiquement une requête HTTP à une URL spécifiée dès qu’un événement défini survient, ce qui permet une notification et une intégration en temps réel entre services sans avoir à interroger régulièrement.
Automatisation événementielle
L'automatisation événementielle est un modèle où les workflows sont déclenchés automatiquement en réponse à des événements précis, comme l'arrivée d'un nouvel e-mail, la création d'un événement de calendrier ou la publication d'un message, permettant ainsi un traitement réactif en temps réel.
Automatisation des flux de travail
L’automatisation des flux de travail consiste à utiliser la technologie pour exécuter automatiquement des processus et des tâches métier répétitives, réduisant ainsi les efforts manuels et les erreurs humaines.
Tâche cron
Une tâche cron est une opération programmée pour s'exécuter automatiquement à des intervalles ou dates déterminés à l'aide de la syntaxe de planification cron, permettant l'automatisation récurrente sans intervention manuelle.
Intégration API
L'intégration API est le processus qui consiste à connecter différentes applications logicielles via leurs interfaces de programmation (API), leur permettant de partager facilement données et fonctionnalités.


