xbus
Xbus 3.0.0
Après deux ans et demi de travail de reconception, réécriture et tests, nous avons le grand plaisir d’annoncer que Xbus 3.0.0 est prêt !
Ce qui a été fait
Beaucoup ! A l’été 2016, Xbus 2, écrit en python avec un protocole maison sur un serveur zero-mq, montrait ses limites et le besoin de repenser la solution dans son ensemble se faisait fortement ressentir.
C’est pourquoi nous avons commencé à travailler sur une réécriture complète de Xbus avec les buts, idées et contraintes suivants :
- Baser le protocole sur NATS, pour faciliter la distribution et la configuration
- Remplacer Python par Go. Les raisons de ce choix sont multiples et ne constituent pas l’objet de cet article, mais on peut mentionner les avantages d’un langage compilé, et le fait que NATS est codé en Go, ce qui facilite l’intégration à bas niveau (nous nous branchons notamment sur la couche d’authentification)
- Fournir de fortes garanties de sécurité. Nous avons trouvé pour cela une solution simple et élégante présentée dans cet article
- Utiliser une architecture en micro-services
En chemin, des fonctionnalités majeures ont émergé :
- Définition de pipeline par des graphs
- Définition des API basée sur protobuf, grâce au projet NRPC auquel nous avons largement contribué
- Une passerelle HTTP pour les acteurs simples
Puis-je l'utiliser ?
OUI ! Nous avons attendu une longue période de test et d’affinage avant de sortir une version majeure afin que tout un chacun puisse l’utiliser.
Nous avons déjà plusieurs instances de Xbus 3 en production, et sommes confiants au vu du travail convenablement effectué jusqu’à présent.
Et maintenant ?
La roadmap évolue en continu, mais les sujets suivants captent tout particulièrement notre attention :
- “Replies” : Actuellement, un émetteur ne peut pas attendre de réponse au message qu’il envoie. Il est possible de contourner cela en ajoutant un consommateur et configurant un pipeline en boucle, mais nous voulons apporter une solution clé en main
- Un GUI digne de ce nom : nous avons déjà un prototype d’application développée en Elm. Nous envisageons de nombreuses fonctionnalités pour ce GUI : configuration des comptes, acteurs et pipelines…, monitoring, gestion simplifiée des erreurs, poster des données manuellement pour remplacer les fichiers déposés sur des serveurs FTP, support SSO, etc
- Amélioration des performances : Bien que déjà convenables, nous savons que les performances de Xbus peuvent être largement améliorées, notamment parce que son architecture a été pensée pour cela
Maintenant que nous avons fait la démonstration de la robustesse et la sûreté de Xbus, nous pouvons nous pencher sur ses performances.