Federation-compatible subgraph implementations
For use in a federated supergraph
The following open-source GraphQL server libraries and hosted solutions support acting as a subgraph in a federated supergraph. Their support is tracked in Apollo's subgraph compatibility repository. Check out the repository for details on the compatibility tests listed in the table below.
To add a subgraph to this list, feel free to open an issue or check out the Apollo Federation Subgraph Maintainers Implementation Guide to learn how to submit a PR for your implementation!
Table Legend
| Icon | Description |
|---|---|
| 🟩 | Functionality is supported |
| 🟥 | Critical functionality is not supported |
| 🔲 | Additional Federation functionality is not supported |
C# / .NET
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GraphQL for .NET |
|
| ||||||||||||||||||||||||
| Hot Chocolate |
|
|
Elixir
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Absinthe.Federation |
|
|
Go
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gqlgen |
|
|
Java / Kotlin
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dgs-framework |
|
| ||||||||||||||||||||||||
| Federation JVM |
|
| ||||||||||||||||||||||||
| GraphQL Java Kickstart (Spring Boot) |
|
| ||||||||||||||||||||||||
| GraphQL Kotlin |
|
|
JavaScript / TypeScript
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Apollo Server |
|
| ||||||||||||||||||||||||
| express-graphql |
|
| ||||||||||||||||||||||||
| GraphQL Yoga |
|
| ||||||||||||||||||||||||
| Mercurius |
|
| ||||||||||||||||||||||||
| NestJS |
|
| ||||||||||||||||||||||||
| Pothos GraphQL |
|
|
PHP
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Lighthouse (Laravel) |
|
| ||||||||||||||||||||||||
| Apollo Federation PHP |
|
|
Python
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ariadne |
|
| ||||||||||||||||||||||||
| Graphene |
|
| ||||||||||||||||||||||||
| Strawberry |
|
|
Ruby
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GraphQL Ruby |
|
|
Rust
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Async-graphql |
|
|
Scala
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Caliban |
|
|
Hosted Subgraphs
| Library | Federation 1 Support | Federation 2 Support | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AWS AppSync |
|
| ||||||||||||||||||||||||
| StepZen |
|
|