La federation permette a molti servizi distribuiti in modo indipendente di possedere ciascuno una parte di un unico grafo, che un gateway compone in un singolo schema interrogabile dai client. È la sostituzione moderna dello schema stitching, in cui un gateway univa manualmente schemi remoti — la federation sposta le regole di unione all'interno dei subgraph stessi.
L'architettura
┌────────────────────────┐
Client ─────▶ │ Gateway / Router │ (composed supergraph)
└───────┬────────┬───────┘
│ │ plans + fans out sub-queries
┌──────────▼──┐ ┌──▼──────────┐ ┌──────────────┐
│ Users svc │ │ Reviews svc │ │ Products svc │
│ type User │ │ extends │ │ type Product│
│ @key(id) │ │ User/Prod │ │ @key(id) │
└──────────────┘ └─────────────┘ └──────────────┘
