Coulisses techniques
Outils de monitoring : comment uh!ive supervise son infrastructure
Nous allons évoquer ici les outils de monitoring utilisés par uh!ive dans le cadre de la supervision de ses services. Les outils de monitoring…
23 juillet 2026
Coulisses techniques
Dans ce nouveau billet, nous allons parler de la mise en œuvre concrète des principes fondamentaux de l’architecture événementielle.
La topologie décrit la manière dont le bus est mis en œuvre sur le courtier de messages.
En tant que courtier de messages, nous avons choisi RabbitMQ pour sa fiabilité et sa facilité d’utilisation.
Dans RabbitMQ, la topologie est établie en instanciant exchanges et queues.
Les échanges sont en quelque sorte des routeurs, et les files d’attente leur sont liées (à l’aide d’abonnements à des clés de routage particulières) par les applications clientes pour stocker leurs messages en attente de traitement. Une bonne pratique consiste à considérer les files d’attente comme privées pour le service logique (mais partagées par les travailleurs de ce service logique). Nous utilisons le nom du type de message comme clé de routage.
La topologie est composée de trois échanges :
Le résultat d’une commande est également envoyé à l’échange de commandes.
Les instances d’un même service logique sont appelées travailleurs de ce service, et elles partagent la même file d’attente. Le courtier garantit qu’un message est traité par un et un seul travailleur du pool attaché à la file d’attente.
L’accusé de réception du traitement des messages par les clients est un mécanisme très utile pour garantir qu’aucune donnée n’est perdue (c’est-à-dire qu’un message est garanti d’être traité au moins une fois) et pour permettre un équilibrage efficace de la charge. En effet, le courtier de messages ne retirera pas un message de la file d’attente tant que le travailleur qui l’a pris pour le traiter ne lui aura pas dit qu’il a terminé son travail. Pendant ce temps, le message est réservé. Si le travailleur qui a pris le message s’arrête avant d’accuser réception, le message devient disponible pour n’importe quel autre travailleur, ou pour le même travailleur lorsqu’il revient. En outre, le courtier sait à tout moment quels travailleurs sont occupés et lesquels sont inactifs, de sorte qu’il peut mieux répartir la charge entre eux.
Notez qu’il s’agit de la topologie de base. Comme la topologie est créée par les services eux-mêmes au lieu d’une configuration centrale, ils peuvent l’étendre localement (c’est-à-dire de leur côté) pour leurs propres besoins. Cela signifie également qu’ils doivent tous accepter la topologie de base exposée ci-dessus pour rejoindre le bus.
La topologie décrit la manière dont le courtier achemine les messages et les garanties qu’il doit fournir.
L’AED exige également que les services mettent en œuvre certaines règles de base pour garantir la fiabilité et la performance :
Pour éviter la duplication du code, nous avons développé des mini-frameworks (en Python, Elixir et Rust) qui implémentent cette topologie de base et tous les comportements requis des services. Nous en parlerons dans le prochain billet: Framework et outils !
Coulisses techniques
Nous allons évoquer ici les outils de monitoring utilisés par uh!ive dans le cadre de la supervision de ses services. Les outils de monitoring…
23 juillet 2026
Coulisses techniquesProduit
uh!ive fournit une suite complète de services pour traiter et analyser la voix (speech analytics, speech-to-text), ainsi qu'une application web pour accéder à…
5 mai 2026