This repository contains a reference architecture utilizing Kubernetes when using Apollo Federation. It uses GitHub Actions configured to automate most of the deployment processes for the router, subgraphs, and client, along with minimal observability tooling available to be able to appropriately load test the resulting environment.
Once the architecture is fully stood up, you'll have:
- An Apollo Router running utilizing:
- Eight subgraphs, each handling a portion of the overall supergraph schema
- A React-based frontend application utilizing Apollo Client
- GitHub Actions to automate image building and GraphOS-specific implementations, including schema publishing and persisted query manifest creation/publishing
- Tools to run k6 load tests against the architecture from within the same cluster
At a minimum, you will need:
- A Github account.
- An enterprise Apollo GraphOS account.
- You can use a free enterprise trial account if you don't have an enterprise contract.
- An account for either:
- Google Cloud Platform (GCP).
- Amazon Web Services (AWS).
Further requirements are noted within the setup instructions as each type of environment (cloud vs. local) requires additional tooling.
- ⏱ estimated time: 1 hour 15 minutes
- 💰 estimated cost (if using a cloud provider): $10-$15
During setup, you'll be:
- Gathering accounts and credentials
- Provisioning resources
- Deploying the applications, including router, subgraphs, client, and observability tools
Once finished, you can cleanup your environments following the above document.