Federation は、独立してデプロイされた多数のサービスがそれぞれ 1 つのグラフの一部を所有し、それを gateway がクライアントのクエリ対象となる単一のスキーマに合成する仕組みです。これは、gateway がリモートスキーマを手動でマージしていた 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) │
└──────────────┘ └─────────────┘ └──────────────┘
