Qu'est-ce que Watermill?
Watermill est une bibliothèque Golang conçue pour traiter efficacement les flux de messages. Elle est conçue pour la construction d'applications pilotées par des événements et peut être utilisée pour la source d'événements, les appels RPC basés sur des messages, les sagas, et tous les autres cas d'utilisation auxquels vous pouvez penser. Vous pouvez utiliser des implémentations traditionnelles de publication/abonnement comme Kafka ou RabbitMQ, ainsi que HTTP ou le binlog MySQL, en fonction de votre cas d'utilisation.
Watermill propose un ensemble d'implémentations de publication/abonnement et peut être facilement étendu avec votre propre implémentation. Il est également livré avec des middleware standard tels que des tableaux de bord, des files d'attente, des limites de débit, des corrélations, etc., qui sont utilisés par chaque application pilotée par des messages.
Pourquoi utiliser Watermill?
Avec un nombre croissant de projets adoptant l'architecture de microservices ces dernières années, tous les scénarios commerciaux ne peuvent pas être résolus à l'aide d'appels RPC synchrones. La gestion de tâches asynchrones est devenue un complément précieux.
L'objectif de Watermill est de devenir la bibliothèque de messagerie standard pour Go, en masquant toute cette complexité derrière une API compréhensible. Il fournit tout ce dont vous avez besoin pour construire des applications basées sur des modèles d'événements ou d'autres modèles asynchrones. Après avoir examiné les exemples, vous devriez pouvoir intégrer rapidement Watermill dans votre projet.