联邦(Federation) 让许多独立部署的服务各自拥有同一张图的一部分,由一个**网关(gateway)**把它们组合成一个客户端查询的单一 schema。它是 schema stitching 的现代替代品——在 stitching 中,网关手动合并远程 schema,而联邦把合并规则下放到子图(subgraph)自身。
架构
text
┌────────────────────────┐
Client ─────▶ │ Gateway / Router │ (组合后的 supergraph)
└───────┬────────┬───────┘
│ │ 规划并扇出子查询
┌──────────▼──┐ ┌──▼──────────┐ ┌──────────────┐
│ Users svc │ │ Reviews svc │ │ Products svc │
│ type User │ │ extends │ │ type Product│
│ @key(id) │ │ User/Prod │ │ @key(id) │
└──────────────┘ └─────────────┘ └──────────────┘
