Apollo Tech Notes
This documentation set provides technical articles on specialized topics for Apollo tools and libraries. Select a tag to view all articles on the corresponding topic. Click Note, Published, or Updated to sort articles by title, publish date, or update date, respectively.
All notes
Note | Published | Updated |
---|---|---|
Connecting OpenTelemetry Traces to Prometheus serverobservability Convert operation traces into aggregated metrics using OpenTelemetry Collector and Prometheus for a broader view of your graph's performance. 1 min read | 2022-06-03 | 2024-07-10 |
Client ID Enforcement serverobservabilityrouter Improve GraphQL operation monitoring by tagging operations with with client details. See code examples for Apollo GraphOS Router and Apollo Server. 2 min read | 2022-05-31 | 2024-07-10 |
Authenticating Requests with the GraphOS Router serverrouterauth Combine authorization and authentication strategies with the GraphOS Router to secure your graph through defense in depth. 2 min read | 2022-06-13 | 2024-07-10 |
Testing with Apollo Federation clientserverfederationtesting Test your GraphQL architecture comprehensively with unit, integration, end-to-end, composition, and component and operation testing. 3 min read | 2022-07-12 | 2024-07-10 |
Improving Gateway Performance gatewayperformance Recommendations for improving your gateway's performance when using Apollo Server with the @apollo/gateway library. 2 min read | 2022-07-28 | 2024-07-10 |
Moving a GraphQL Monolith to Apollo Federation federationserver A step-by-step guide for migrating from a GraphQL monolith to a federated supergraph with Apollo Federation. 4 min read | 2022-09-06 | 2024-07-10 |
Production Readiness Checklist srerouterserverclientbest-practices Use this checklist—covering the GraphOS Router, subgraphs, and clients—to identify potential gaps before your graph handles production traffic. 2 min read | 2022-07-11 | 2024-07-10 |
Managing GraphOS Router Resources in Kubernetes routerkubernetes Recommendations and considerations for determining the correct resource requests and limits for application pods in a Kubernetes system. 1 min read | 2022-10-31 | 2024-07-10 |
Sending GraphOS Router Traces and Metrics to APM Tools Using OpenTelemetry observabilityrouter Sending Apollo GraphOS Router traces and metrics to APM tools to gain insight into your graph's performance and stability. 2 min read | 2022-10-27 | 2024-07-10 |
Securing Supergraphs securityfederation Best practices for securing federated GraphQL APIs, including limiting discoverability, error obfuscation, query depth limits, and more. 10 min read | 2022-12-08 | 2024-07-10 |
GraphQL Adoption Patterns federation Learn shortcomings and solutions for GraphQL adoption patterns and anti-patterns, including monoliths, BFFs.queries a single GraphQL server. 6 min read | 2023-01-09 | 2024-07-10 |
Thinking in Entities federationschema-design Schema design best practices for entities, including when to define, reference and extend entities. 3 min read | 2023-01-09 | 2024-07-10 |
Deploying API Changes with Managed Federation and GraphOS federation Use tools like GraphOS Studio, Rover, and contracts to ensure smooth releases and minimize client impact. 7 min read | 2023-01-09 | 2024-07-10 |
Optimizing Custom GraphOS Router Builds router Recommendations and considerations for minimizing build time when using custom Apollo GraphOS Router builds. 1 min read | 2023-01-19 | 2024-07-10 |
Load Testing a Federated GraphQL API testingperformance Considerations for load testing with GraphQL in the Apollo ecosystem. 4 min read | 2023-02-01 | 2024-07-10 |
Does GraphOS Router Replace My API Gateway? federationroutergateway The GraphOS Router isn't based on URLs or REST endpoints, its a GraphQL-native solution to handle your clients API operations. 2 min read | 2023-03-31 | 2024-07-10 |
Debugging Subgraph Requests from the GraphOS Router or @apollo/gateway federationgatewayroutersubgraphs Log query plans and subgraph calls with the Apollo GraphOS Router and @apollo/gateway to help debug problematic queries. 1 min read | 2023-04-13 | 2024-07-10 |
Federation Is Not a Saga Orchestrator federation Federation orchestrates mutation fields but additional considerations are necessary when handling state changes across distributed systems. 3 min read | 2023-04-20 | 2024-07-10 |
Router Resource Estimator router Estimate the system resources you need to allocate for the Apollo GraphOS Router to run production traffic. 1 min read | 2023-12-15 | 2024-07-10 |
Enabling HTTP Subscriptions with the GraphOS Router and an API Gateway router Enable HTTP multipart subscriptions when using an API gateway in front of the router. 1 min read | 2024-03-11 | 2024-07-10 |
Managing Graph Environments Using Variants federation Learn CI/CD best practices and examples when using graph variants for multiple deployment environments. 3 min read | 2023-12-22 | 2024-07-10 |
Enforcing Entity Ownership in Apollo Federation federation Learn how to designate entity ownership and make "entity extension" a first-class concept in your Apollo Federation 2 supergraph. 1 min read | 2023-02-16 | 2024-06-21 |
React Context with Apollo Client client Avoiding props-drilling by making data accessible through a React Hook, which can be called anywhere in the nested component tree. 1 min read | 2023-01-30 | 2024-06-13 |
Schema Naming Conventions schema-design Learn naming and casing conventions for GraphQL schema types, fields, and arguments and how to enforce them with GraphOS. 1 min read | 2023-06-03 | 2024-05-30 |
Overload Protection serverroutersre Implement GraphQL server overload protection for high traffic scenarios to ensure availability and reduce error rates. 2 min read | 2022-07-08 | 2024-05-30 |
Response Cache Eviction servercachingperformance Use advanced cache eviction patterns with custom cache keys to selectively evict cached responses when relevant events occur. 3 min read | 2022-08-10 | 2024-05-30 |
Designing Response Types schema-design Learn different response type patterns for GraphQL queries and mutations. 1 min read | 2022-08-03 | 2024-05-30 |
Contracts Usage Patterns contractsschema-design Learn how contracts enable teams to contribute to a single unified graph and also deliver use-case-specific schemas to different consumers. 4 min read | 2022-08-29 | 2024-05-30 |
Namespacing by Separation of Concerns schema-design Organize root-level operation fields into namespaces to improve the logical structure to your GraphQL schema. 2 min read | 2022-08-31 | 2024-05-30 |
Recommended Usage for GraphQL Interfaces schema-designfederation Interfaces enable schema fields to return one of multiple object types. Explore examples and avoid common pitfalls in using interfaces. 1 min read | 2022-10-31 | 2024-05-30 |
Aggregating Data Across Subgraphs federation If product requirements don't align with a single domain, it may suggest the need for a new domain or subgraph. 3 min read | 2022-11-03 | 2024-05-30 |
Mocking Graph Functionality to Unblock Client Development gatewayschema-designfederation Mock parts of your supergraph as you develop both your subgraphs and clients to enable teams to work in parallel without blocking each other. 3 min read | 2022-11-17 | 2024-05-30 |
How Federation Handles the N+1 Query Problem federationsubgraphs Learn how to handle the "N+1 query problem" for operations that return a list in a federated graph. 2 min read | 2022-11-15 | 2024-05-30 |
Schema Deprecations schema-design Gracefully manage GraphQL type and field deprecations by using field metrics and the @deprecated type system directive. 1 min read | 2023-01-09 | 2024-05-30 |
Supergraph Stewardship schema-design Strong stewardship practices maintain a supergraph's integrity while simultaneously driving its adoption across teams. 4 min read | 2023-01-09 | 2024-05-30 |
Demand Oriented Schema Design federationschema-design Support GraphQL client applications that consume data from our federated graph by designing schemas in an abstract, demand-oriented way. 7 min read | 2023-01-09 | 2024-05-30 |
Relay-Style Connections and Pagination FAQ best-practicesschema-design Common questions around Relay's Connections specification and how to use it wih Apollo Federation. 2 min read | 2023-01-17 | 2024-05-30 |
Server-Driven UI Basics schema-designserver-driven-ui Server-driven UI is an architectural pattern that aims to reduce client-side logic and provide consistency across client platforms. 3 min read | 2023-01-30 | 2024-05-30 |
Graph Identities schema-design The purpose of this technote is to demonstrate queries/mutations for identifying an actor attempting to use the graph. 1 min read | 2023-01-19 | 2024-05-30 |
Server-Driven UI Schema Design schema-designserver-driven-ui Explore SDUI UI patterns to structure your graph's schema for encoding and representing UI elements, using enums, contracts, and interfaces. 1 min read | 2023-01-30 | 2024-05-30 |
Keeping Schemas Up-To-Date in Client Apps federationbest-practicesclient Apollo's recommendations and best practices for keeping client apps up-to-date with supergraph schema changes. 1 min read | 2023-04-12 | 2024-05-30 |
GraphQL as an Abstraction Layer architecture-patterns Avoid BFF sprawl by using GraphQL as an abstraction between service consumers and backend services. 1 min read | 2023-11-15 | 2024-05-30 |
Server-Driven UI Client Design clientserver-driven-ui Use a component registry and design systems and tokens to simplify client logic with SDUI. 1 min read | 2023-10-09 | 2024-05-30 |
Errors as Data Explained schema-design Union types can represent multiple types of data in a single field and can help you handle GraphQL responses with clarity and flexibility. 2 min read | 2023-06-22 | 2024-05-30 |
Using GraphQL and REST Together architecture-patterns Most organizations adopting GraphQL use both for different purposes and at different layers of the stack. 5 min read | 2023-12-07 | 2024-05-30 |
Nullability schema-designfederation Weigh the implications of choices about nullability for every GraphQL type, field, and argument in a schema. 3 min read | 2023-01-09 | 2024-01-12 |
Reporting issues
If you find an issue with a tech note, feel free to use the Edit on GitHub button to create a PR with the suggested changes. Otherwise, you can view the source and create a GitHub issue on the apollographql/docs repo.
Adding new tech notes
If you have an idea for a new tech note, please create a new GitHub issue with the suggested changes or topic that you would like covered.