Federation memungkinkan banyak service yang dideploy secara independen masing-masing memiliki bagian dari satu graph, yang lalu disusun oleh sebuah gateway menjadi satu schema yang di-query client. Ini adalah pengganti modern untuk schema stitching, di mana sebuah gateway menggabungkan schema remote secara manual — federation memindahkan aturan penggabungan ke dalam subgraph itu sendiri.
Arsitekturnya
┌────────────────────────┐
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) │
└──────────────┘ └─────────────┘ └──────────────┘
