Routing for supergraphs
Learn about self-hosted and cloud routing options
With supergraph architecture (also known as Apollo Federation), each component service is known as a subgraph. A router acts as an entry point to your subgraphs and provides a unified interface for clients to interact with. Clients send operations to your router's public endpoint instead of directly to your APIs.
The router intelligently executes each incoming client operation across the appropriate combination of subgraphs. It then merges subgraph responses into a single response for the client. You can configure your router's error handling, CORS settings, other security features, and more. Your configuration options depend on your router type.
With GraphOS, you can host your own Apollo Router, a configurable, high-performance routing runtime packaged as a standalone binary:
Or you can choose for Apollo to provision and manage a cloud router for you:
Cloud routers use the same Apollo Router binary that you can self-host.
If you use a cloud router, you can choose to run it on shared or dedicated infrastructure. Running it on dedicated infrastructure offers more configuration options. Continue reading for a more detailed comparison of your router options.
Apollo also offers the
@apollo/gateway library, but we recommend the Apollo Router over
@apollo/gateway because it provides significant performance and security improvements. For more information about the differences and how to migrate, see the migration guide.
Apollo offers the following router options, in increasing order of configurability:
|Router type||Description||Configurability||Plan availability|
|Cloud shared router||Apollo provisions and manages routers on shared infrastructure.||Basic configurability, including HTTP header rules, CORS settings, and subgraph error inclusion||Serverless|
|Cloud Dedicated router||Apollo provisions and manages routers on dedicated infrastructure that you control and scale.||Highly configurable, including all options for shared cloud routers and additional configurations||Dedicated|
|Self-hosted router||You host and manage the router on your own infrastructure.||Highly configurable and customizable, including all options for Cloud Dedicated routers and additional customization options||Apollo Router is available as a free and source-available runtime. Connecting your self-hosted Router to GraphOS requires an Enterprise plan.|
Somes organizations might need to use Cloud Dedicated or self-hosted routing instead of shared cloud routing for these reasons:
- Compliance. All of your supergraph's components must be hosted in a particular region to adhere to compliance requirements.
- Performance. You need to minimize latency between your router and subgraphs by enabling them to communicate without traversing the public internet, for example by hosting all components in a VPC.
- Customization. You need to configure or customize your router's behavior beyond what's available on shared infrastructure.
With the exception of Apollo-managed routing, self-hosted supergraphs benefit from all of the same GraphOS features as cloud supergraphs: metrics reporting, schema checks, the Explorer, etc.
If you are interested in either Cloud Dedicated or self-hosted routing, don't hesitate to get in touch.
For setup and configuration instructions, refer to the respective router documentation: