Federation은 독립적으로 배포된 여러 서비스가 각각 하나의 graph의 일부를 소유하게 하고, gateway가 이를 클라이언트가 쿼리하는 단일 schema로 합성합니다. 이는 gateway가 원격 schema를 수동으로 병합하던 schema stitching의 현대적 대체재입니다 — federation은 병합 규칙을 subgraph 자체로 옮깁니다.
아키텍처
┌────────────────────────┐
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) │
└──────────────┘ └─────────────┘ └──────────────┘
