GraphQL Federation
This content is not available in your language yet.
Les APIs GraphQL permettent de développer des applications web et mobiles à partir d’un seul point de données.
Pour avoir notre unique pour d’entrée généralement nous utilisons la technologie de Federation de GraphQL qui va nous permettre de consolider tout les schema et de répartir automatiquement les requêtes aux différents services.
Généralement pour créer cette federation, nous allons utiliser une ‘Gateway’ ou encore un ‘Router’. Mais quelle technologie de Federation utiliser ?
Il y a plusieurs choix, le plus connus c’est les outils de Apollo GraphQL.
Pour gérér notre federation, nous allons explorer Apollo Router, Cosmo Router. Mais il existe aussi Grafbase.
Voici quelques détails sur les différentes technologies :
Apollo Router
Techno : Rust - Licence Elastic (source-accessible)
Apollo Router est la solution de fédération GraphQL développée par Apollo, l’entreprise pionnière dans ce domaine. Écrit en Rust pour des performances optimales, Apollo Router agit comme le point d’entrée unique pour votre API GraphQL fédérée. Il compose dynamiquement les schémas des sous-graphes pour créer un supergraphe unifié, puis route intelligemment les requêtes vers les services appropriés.
Apollo Router offre une intégration native avec l’écosystème Apollo, notamment Apollo Studio pour le monitoring et GraphOS pour la gestion du cycle de vie des API. Il prend en charge la Federation v1 et v2, et propose des fonctionnalités avancées comme le Query Plan Caching pour optimiser les performances. Cependant, sa licence Elastic v2 limite certaines utilisations commerciales et son déploiement est principalement orienté cloud.
Forces :
- Intégration native avec l’écosystème Apollo (Studio, GraphOS)
- Optimisations avancées de requêtes (Query Plan Caching)
- Support officiel de la Federation v2
Points faibles :
- Licence non open-source (interdiction de modifier/réutiliser le code)
- Déploiement cloud-first (complexité d’auto-hébergement)
- Coûts élevés pour les scale-ups (>1M req/mois)
Écosystème :
- Apollo Studio : Monitoring SaaS clé-en-main
- GraphOS : CI/CD et registre de schéma cloud
Cosmo Router
Techno : Go - Licence Apache 2.0
Cosmo Router, développé par WunderGraph, est une alternative open-source à Apollo Router. Écrit en Go et sous licence Apache 2.0, Cosmo Router se distingue par sa flexibilité de déploiement et ses performances élevées. Il est conçu pour être entièrement auto-hébergeable, ce qui en fait un choix privilégié pour les entreprises ayant des exigences strictes en matière de conformité et de contrôle des données.
Cosmo Router propose des fonctionnalités uniques comme le mode “Ludicrous” pour réduire la charge sur les origines, un Cache Warmer pour gérer les pics de trafic, et les abonnements fédérés pilotés par événements (EDFS) pour les applications en temps réel. Il est compatible avec Apollo Federation v1 et v2, ainsi qu’avec Open Federation, offrant une grande flexibilité d’intégration dans les architectures existantes.
Forces :
- Débit 2x supérieur à Apollo Router (867 vs 434 req/s)
- Architecture stateless pour scaling horizontal
- Auto-hébergement complet (K8s, AWS Lambda, on-premise)
Fonctionnalités exclusives :
- Cache Warmer (anticipation des pics type Super Bowl)
- EDFS : Abonnements temps réel évolutifs
- RBAC/JWT au niveau des champs
Points faibles :
- Courbe d’apprentissage pour les extensions Go
- UI moins mature qu’Apollo Studio
Écosystème :
- Cosmo CDN : Synchronisation des schémas
- OTEL Collector : Observabilité unifiée
- Studio Self-Hosted : Alternative à GraphOS
Grafbase
Techno : Rust
Grafbase est une plateforme GraphQL récente qui se positionne comme une solution performante pour la fédération GraphQL. Conçue avec une approche centrée sur les développeurs, Grafbase simplifie le processus d’intégration des API en utilisant des graphes fédérés.
Grafbase se distingue par ses performances exceptionnelles et sa flexibilité de déploiement. La plateforme offre des options de déploiement edge pour réduire la latence, ainsi qu’une solution d’auto-hébergement partiel via son Gateway. Grafbase met l’accent sur l’optimisation des performances et l’évolution continue pour répondre aux besoins changeants des développeurs dans le paysage des API.
Forces :
- Leader des benchmarks (1502 req/s, 57.9ms latency)
- Architecture serverless-first
- Intégration Edge Network (Cloudflare, Vercel)
- Auto-hébergement partiel du Gateway possible
Points faibles :
- Auto-hébergement limité au Gateway (UI et analytics restent cloud-managed)
- Écosystème moins mature que les concurrents établis
- Dépendance au cloud Grafbase pour certaines fonctionnalités
Écosystème :
- Grafbase Edge : Réseau global low-latency
- Analytics Live : Monitoring temps réel
- Gateway auto-hébergeable : Déployable via Docker, Cloudflare Workers, AWS Lambda, ou Deno
Tableau Comparatif Stratégique
Critère | Apollo Router | Cosmo Router | Grafbase |
---|---|---|---|
Licence | Elastic (restrictive) | Apache 2.0 (libre) | Propriétaire (Gateway auto-hébergeable) |
Débit (req/s) | 434 | 867 | 1502 |
Latence P99 | 92.4 ms | 308.7 ms | 57.9 ms |
Self-Host | Partiel | Complet | Partiel (Gateway uniquement) |
Observabilité | GraphOS (cloud)/OTEL/Prometheus | OTEL/Prometheus | Grafbase Analytics (cloud) |
Coût Scale-Up | $$ | $ | $$ |
Cas d’Usage | Startups cloud-first | Entreprises réglementées | Apps globales à haute performance |