GraphQL Federation
Advanced Ecosystem 🔴 SeniorDéfinition
Architecture où plusieurs services GraphQL indépendants (sous-graphes, un par domaine : utilisateurs, produits, commandes) sont composés en un unique schéma (supergraphe) servi par un routeur qui planifie et distribue chaque requête. Apollo Fédération 2 assouplit la propriété partagée des types et compose un supergraphe rétrocompatible avec les sous-graphes v1 ; Apollo Router en est l'exécuteur de référence.
Analogie
Un guichet unique de mairie : vous déposez un seul formulaire, l'agent d'accueil le découpe et interroge l'état civil, l'urbanisme et la voirie, puis vous rend une réponse assemblée.
Exemple de code
# Sous-graphe « avis » qui étend le type Product du sous-graphe « produits »
extend schema @link(url: "https://specs.apollo.dev/federation/v2.3",
import: ["@key", "@shareable"])
type Product @key(fields: "id") {
id: ID!
reviews: [Review!]! # résolu ici, le reste vient de « produits »
}
type Review { id: ID!, rating: Int!, body: String }
# Le routeur reçoit { product(id) { name reviews { rating } } }
# et appelle les deux sous-graphes, puis fusionne par @key.
Cas d'usage
Plusieurs équipes possèdent chacune leur domaine et veulent une API GraphQL unifiée pour les fronts, sans monolithe de schéma.
Anti-pattern
Termes liés
Sources
Fiche mise à jour le 2026-09-27