Un nouveau projet open source fait son apparition dans l'écosystème des API GraphQL. Baptisé Feddi, il se positionne comme une passerelle de fédération (gateway) conçue spécifiquement pour tourner sur la machine virtuelle Java (JVM). L'annonce a été relayée cette semaine sur une plateforme de discussion technique, suscitant l'intérêt de la communauté des développeurs.
Une approche native pour la JVM
Feddi se distingue par son architecture pensée dès l'origine pour l'environnement Java. Là où de nombreuses solutions de fédération GraphQL existantes reposent sur d'autres langages ou runtimes (JavaScript/Node.js, Rust, Go...), Feddi promet une intégration fluide avec les piles techniques Java existantes. Cela pourrait faciliter son adoption par les entreprises disposant déjà d'un important patrimoine logiciel basé sur la JVM.
Le projet est accessible publiquement à l'adresse feddi.dev. Son code source est visible et les commentaires de la communauté sont ouverts sur la plateforme Hacker News. Le créateur du projet n'a pas encore publié de documentation détaillée ni de comparatif avec d'autres passerelles comme Apollo Federation ou GraphQL Mesh.
Fonctionnement de la fédération GraphQL
La fédération GraphQL est une architecture qui permet de combiner plusieurs services GraphQL distincts en un seul graphe de données unifié. Chaque service expose une partie du schéma global, et la passerelle (gateway) se charge de résoudre les requêtes en allant chercher les données auprès des différents services. Cette approche est notamment utilisée pour les architectures de microservices, où elle permet de masquer la complexité du découpage derrière une API unique pour les clients.
Feddi s'inscrit dans ce paradigme, en proposant une implémentation nativement pensée pour la JVM. La fédération est souvent mise en œuvre via la spécification Apollo Federation, mais le projet ne précise pas encore s'il est compatible avec cette norme ou s'il propose son propre protocole.
Un projet à ses débuts
Pour l'instant, Feddi semble être un projet jeune. Aucune version stable n'a été annoncée, et la page d'accueil se limite à une présentation succincte. Les développeurs intéressés sont invités à consulter le dépôt de code et à participer aux discussions. L'initiative pourrait répondre à un besoin exprimé par la communauté Java, qui dispose de peu de solutions de fédération GraphQL matures et maintenues activement.
La popularité de GraphQL ne cesse de croître dans le monde de l'entreprise. La promesse d'une passerelle de fédération « JVM-native » pourrait convaincre des équipes techniques d'adopter cette architecture sans avoir à changer d'environnement d'exécution. Reste à voir comment le projet évoluera et s'il parviendra à attirer une communauté de contributeurs.
Enjeux et perspectives
L'arrivée de Feddi pose la question de la maturité des outils GraphQL dans l'écosystème Java. Si le projet tient ses promesses, il pourrait combler un vide. Cependant, en l'absence de comparatifs techniques et de retours d'expérience, il est difficile d'évaluer ses performances réelles ou sa robustesse en production.
La fédération GraphQL est un sujet complexe, notamment en ce qui concerne la gestion des erreurs, la sécurité et les performances sur des graphes de données très volumineux. Une passerelle JVM-native pourrait tirer parti des optimisations de la JVM (compilation à la volée, gestion avancée de la mémoire) pour offrir de bonnes performances, mais cela reste à démontrer.
Pour l'heure, Feddi est un projet à suivre, qui pourrait intéresser les architectes et développeurs Java désireux d'explorer la fédération GraphQL sans sortir de leur environnement habituel.