Best GraphQL Federation Platforms 2026
Why GraphQL Federation Exists
A single GraphQL schema for a large application becomes a maintenance burden: every team's data types and mutations live in one massive schema, every API change requires coordinating across teams, and the single GraphQL server becomes a deployment bottleneck.
GraphQL Federation solves this by composing multiple independent GraphQL subgraph schemas into a single unified supergraph — one API surface, multiple independent services. The users team owns the User type; the products team owns Product; the orders team owns Order. The federation gateway stitches them together automatically.
In 2026, four platforms provide GraphQL federation infrastructure: Apollo Federation (the standard that defined the spec), The Guild's Hive (open-source, MIT-licensed, with strong spec compliance), WunderGraph (visual schema design + managed federation), and Cosmo (open-source router by WunderGraph, composable and fast).
TL;DR
Apollo Federation is the most widely adopted — defined the federation specification that others now implement, largest ecosystem, GraphOS managed service at $99/month. The Guild's Hive is the best open-source alternative — MIT-licensed, Apollo Federation compliant, self-hostable with free cloud tier, and the most active community outside Apollo. WunderGraph provides a visual collaborative schema design experience on top of federation. Cosmo is WunderGraph's high-performance open-source router — a strong self-hosted alternative to Apollo Router.
Key Takeaways
- Apollo GraphOS starts at $99/month for the Serverless tier (pay-per-operation), with Team plan at $1,700/month. Apollo Router is open-source (Elastic License).
- GraphQL Hive is MIT-licensed — free to self-host, free cloud tier available, and scores 100% on the Federation audit specification.
- WunderGraph Cosmo is an open-source (Apache 2.0) federation router with a commercial managed service.
- Apollo Federation 2 introduced entity interface support,
@overridedirective, and@interfaceObject— significant improvements over Federation 1. - Open Federation spec (maintained by The Guild) aims to standardize federation across implementations so routers and subgraphs from different vendors can interoperate.
- Performance benchmarks (September 2025): Apollo Router and WunderGraph perform similarly at ~900ms average, ~2500ms p95 under load; Hive Gateway is competitive.
- Self-hosting the router is common — Apollo Router (OSS), Cosmo, and Hive Gateway are all self-hostable, with managed options for the control plane (schema registry, observability).
Pricing Comparison
| Platform | Free Tier | Paid Starting | License |
|---|---|---|---|
| Apollo GraphOS | No | $99/month (Serverless) | Router: Elastic |
| The Guild Hive | Yes (cloud + self-host) | Custom (Enterprise) | MIT |
| WunderGraph Cosmo | Yes (cloud free) | Contact sales | Apache 2.0 |
| Grafbase Gateway | Yes (self-host) | Contact sales | Open-source |
Apollo Federation
Best for: Enterprise teams, broadest ecosystem, most mature spec implementation, Apollo Studio analytics
Apollo Federation defined the GraphQL Federation specification — the @key, @extends, @requires, and @external directives that allow subgraphs to share and extend types across services. Apollo Federation 2 (2022+) improved entity resolution, added @interfaceObject, and introduced the @override directive for gradual migration between subgraphs.
Pricing
| Plan | Cost | Operations/Month |
|---|---|---|
| Serverless | $99/month | $0.20/million ops |
| Team | $1,700/month | Unlimited |
| Enterprise | Custom | Unlimited + SLAs |
Apollo Router (the runtime) is available under the Elastic License — free for internal and non-commercial use, commercial use requires a license.
Subgraph Implementation
// products-subgraph/src/schema.ts
import { buildSubgraphSchema } from "@apollo/subgraph";
import { gql } from "graphql-tag";
import { resolvers } from "./resolvers";
const typeDefs = gql`
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.3", import: ["@key", "@external", "@requires", "@provides"])
type Query {
product(id: ID!): Product
products(limit: Int = 20): [Product!]!
}
type Product @key(fields: "id") {
id: ID!
name: String!
price: Float!
description: String
category: Category!
}
type Category {
id: ID!
name: String!
slug: String!
}
`;
export const schema = buildSubgraphSchema({ typeDefs, resolvers });
// orders-subgraph — extends Product from products-subgraph
const typeDefs = gql`
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.3", import: ["@key", "@external"])
type Order @key(fields: "id") {
id: ID!
product: Product! # Reference to product in products-subgraph
quantity: Int!
total: Float!
status: OrderStatus!
}
# Extend the Product type to add order-related data
type Product @key(fields: "id") {
id: ID! @external
orderCount: Int! # Only orders-subgraph resolves this
}
enum OrderStatus {
PENDING
PROCESSING
SHIPPED
DELIVERED
}
`;
const resolvers = {
Product: {
// This subgraph handles orderCount for Product entities
__resolveReference: async (reference) => ({
id: reference.id,
orderCount: await db.orders.countByProduct(reference.id),
}),
},
};
Supergraph Composition
# Rover CLI — compose subgraphs into supergraph
npm install -g @apollo/rover
# rover.yaml
federation_version: =2.3.2
subgraphs:
products:
routing_url: https://products-api.example.com/graphql
schema:
subgraph_url: https://products-api.example.com/graphql
orders:
routing_url: https://orders-api.example.com/graphql
schema:
subgraph_url: https://orders-api.example.com/graphql
users:
routing_url: https://users-api.example.com/graphql
schema:
subgraph_url: https://users-api.example.com/graphql
# Compose supergraph schema
rover supergraph compose --config rover.yaml > supergraph.graphql
# Start Apollo Router with composed supergraph
./router --config router.yaml --supergraph supergraph.graphql
When to Choose Apollo Federation
Organizations with existing Apollo Federation subgraphs, teams that need the most mature and feature-complete federation implementation, or enterprises that want GraphOS managed cloud services (schema registry, metrics, Studio analytics dashboard).
The Guild Hive
Best for: Open-source, MIT license, Apollo Federation compliant, self-hostable, cost-conscious teams
GraphQL Hive is the open-source alternative to Apollo GraphOS — a complete GraphQL management platform with schema registry, versioning, analytics, and the Hive Gateway (federation router). The MIT license means you can self-host without licensing restrictions, and the cloud tier includes a free plan.
Pricing
| Plan | Cost | Features |
|---|---|---|
| Hobby (cloud) | Free | 1M operations/month |
| Pro (cloud) | Contact sales | Unlimited + SLA |
| Self-hosted | Free | Full features, your infra |
| Enterprise | Custom | Managed + support |
Schema Registry
# Hive CLI — publish subgraph schema
npm install -g @graphql-hive/cli
# Publish from CI/CD
hive schema:publish \
--token $HIVE_TOKEN \
--service products \
--url https://products-api.example.com/graphql \
products-schema.graphql
# Check before publishing (prevents breaking changes)
hive schema:check \
--token $HIVE_TOKEN \
--service orders \
orders-schema.graphql
Hive Gateway Configuration
# gateway.config.yaml — Hive Gateway
sources:
- name: products
type: graphql
endpoint: https://products-api.example.com/graphql
timeout: 10000
- name: orders
type: graphql
endpoint: https://orders-api.example.com/graphql
timeout: 10000
- name: users
type: graphql
endpoint: https://users-api.example.com/graphql
timeout: 10000
cache:
max: 1000
logging:
level: info
Self-Hosting with Docker
# docker-compose.yml — Hive self-hosted
version: "3.8"
services:
hive-app:
image: ghcr.io/kamilkisiela/graphql-hive/app:latest
environment:
- DATABASE_URL=postgresql://hive:password@postgres:5432/hive
- REDIS_URL=redis://redis:6379
hive-gateway:
image: ghcr.io/kamilkisiela/graphql-hive/gateway:latest
ports:
- "4000:4000"
environment:
- HIVE_TOKEN=your-token
- HIVE_APP_URL=http://hive-app:3000
When to Choose The Guild Hive
Teams that want Apollo Federation compliance without Apollo's licensing restrictions, organizations that need to self-host the full platform (schema registry + gateway) for compliance or cost reasons, or teams that are cost-sensitive — Hive's MIT license and free tiers provide significant savings over Apollo GraphOS at scale.
WunderGraph Cosmo
Best for: High-performance router, open-source Apache 2.0, visual schema design, modern stack
WunderGraph Cosmo is the federation router and platform from WunderGraph — an Apache 2.0 licensed alternative to Apollo Router with competitive performance benchmarks. The Cosmo platform includes a visual schema design studio (collaborative canvas), schema registry, and analytics. The router itself is open-source.
Cosmo Router Performance
Based on September 2025 benchmarks by Grafbase:
- Average response time: ~900ms (comparable to Apollo Router)
- p95: ~2,500ms under load
- Throughput: Competitive with Apollo Router
Cosmo CLI Setup
# Install WunderGraph CLI
npm install -g wgc
# Initialize a new federated graph
wgc init my-supergraph
# Publish subgraph schema to Cosmo
wgc subgraph publish products \
--namespace production \
--schema products.graphql \
--routing-url https://products-api.example.com/graphql
# Compose and deploy the supergraph
wgc graph deploy my-supergraph
Router Configuration
# cosmo-router.yaml — Cosmo Router configuration
graph:
token: "${COSMO_GRAPH_TOKEN}"
engine:
enable_single_flight: true
execution_plan_cache_size: 10240
traffic_shaping:
all:
request_timeout: 60s
rate_limit:
enabled: true
strategy: simple_sliding_window
rate: 1000
burst: 2000
period: 1s
telemetry:
service_name: cosmo-router
tracing:
enabled: true
When to Choose Cosmo
Teams that want an open-source (Apache 2.0) federation router with commercial support available, organizations evaluating Apollo alternatives due to licensing or pricing, or teams that want WunderGraph's visual schema design studio for collaborative API development.
Federation Concepts Reference
# Key federation directives (Apollo Federation 2 compatible)
# @key — marks primary key for an entity
type User @key(fields: "id") {
id: ID!
email: String!
}
# @external — field defined in another subgraph
type Product @key(fields: "id") {
id: ID! @external
# name comes from products-subgraph, not this one
name: String! @external
# This subgraph adds inventory data
stockCount: Int!
}
# @requires — this field needs other fields from entity
type Product @key(fields: "id") {
id: ID! @external
weight: Float! @external
shippingCost: Float! @requires(fields: "weight")
# Resolver receives weight from products-subgraph
}
# @override — migrate field ownership between subgraphs
type Order @key(fields: "id") {
id: ID!
# Gradually migrate 'status' field from old-service to new-service
status: OrderStatus! @override(from: "old-orders-service")
}
Decision Framework
| Scenario | Recommended |
|---|---|
| Enterprise, GraphOS analytics | Apollo GraphOS |
| Open-source, self-hosted | The Guild Hive |
| MIT license required | The Guild Hive |
| High-performance OSS router | Cosmo (Apache 2.0) |
| Visual schema design | WunderGraph |
| Apollo Federation compliance | Hive or Apollo |
| Cost-sensitive | Hive (free self-host) |
| New project, Apollo ecosystem | Apollo GraphOS |
Verdict
Apollo Federation remains the ecosystem standard — the widest adoption, most tooling, and the specification that all other implementations target. Apollo GraphOS at $99-$1,700/month is the trade-off for managed schema registry and analytics.
The Guild Hive is the most compelling alternative — MIT licensed, Apollo Federation 2 compliant, free to self-host, and actively developed by the team behind some of the most-used GraphQL tooling (graphql-code-generator, graphql-yoga, envelop). For cost-conscious teams, the savings over Apollo GraphOS are significant.
Cosmo is the performance-focused open-source router — if you want an Apache 2.0 licensed router with benchmark performance comparable to Apollo Router, Cosmo is the answer.
Compare GraphQL federation platform pricing, spec compliance, and schema registry features at APIScout — find the right federation infrastructure for your GraphQL supergraph.