Join us for GraphQL Summit, October 10-12 in San Diego. Use promo code ODYSSEY for $400 off your pass.
Docs
Launch GraphOS Studio

Self-hosted routing in GraphOS

Host your supergraph's router in your own infrastructure


⚠️ Important: If you're just getting started with , instead create a cloud supergraph.

Self-hosted supergraphs are an Enterprise feature for organizations with advanced performance or compliance requirements.

If your organization doesn't currently have an Enterprise plan, you can test out this functionality by signing up for a free Enterprise trial.

Some organizations with advanced requirements need to host every part of their in their own infrastructure, including the 's :

Your infrastructure
Router
Locations
subgraph
Reviews
subgraph
Clients

A with this structure is called a self-hosted supergraph. Here are some reasons why an enterprise organization might need to use self-hosted routing instead of cloud routing (where Apollo hosts your for you):

  • Compliance. All of your 's components must be hosted in a particular region to adhere to compliance requirements.
  • Performance. You need to minimize latency between your and s by enabling them to communicate without traversing the public internet (e.g., by hosting all components in a VPC).
  • Customization. You need to configure your 's behavior beyond what's currently possible with cloud routing.

With the exception of Apollo-managed routing, self-hosted s benefit from all of the same features as cloud supergraphs (metrics reporting, , the , and so on).

Creating a self-hosted supergraph

  1. Go to your organization's Graphs tab in Apollo Studio.

  2. Click Create New Graph in the top right. Studio displays the following dialog:

  1. Specify an Organization and Graph title for your graph.

  2. Leave the Graph Architecture as Supergraph (Default).

  3. Click Next. A modal like the following appears:

Schema registration options
  1. Leave the Supergraph Pipeline Track dropdown set to its default value.

Your graph has been created!

Previous
Configuring cloud routing
Next
Using @defer
Edit on GitHubEditForumsDiscord