Federation cho phép nhiều service triển khai độc lập, mỗi service sở hữu một phần của cùng một graph, và một gateway ghép chúng thành một schema duy nhất để client truy vấn. Đây là bản thay thế hiện đại cho schema stitching, nơi gateway phải tự ghép các schema từ xa — federation chuyển các quy tắc ghép vào chính các subgraph.
Kiến trúc
┌────────────────────────┐
Client ─────▶ │ Gateway / Router │ (supergraph đã ghép)
└───────┬────────┬───────┘
│ │ lập kế hoạch + tỏa ra các sub-query
┌──────────▼──┐ ┌──▼──────────┐ ┌──────────────┐
│ Users svc │ │ Reviews svc │ │ Products svc │
│ type User │ │ extends │ │ type Product│
│ @key(id) │ │ User/Prod │ │ @key(id) │
└──────────────┘ └─────────────┘ └──────────────┘
