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 |
---|---|---|
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 |
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-05-30 |
Client ID Enforcement serverobservabilityrouter Improve GraphQL operation monitoring by tagging operations with with client details. See code examples for Apollo Router and Apollo Server. 2 min read | 2022-05-31 | 2024-05-30 |
Authenticating Requests with the Apollo Router serverrouterauth Combine authorization and authentication strategies with the Apollo Router to secure your graph through defense in depth. 2 min read | 2022-06-13 | 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 |
Production Readiness Checklist srerouterserverclientbest-practices Use this checklist—covering the Apollo Router, subgraphs, and clients—to identify potential gaps before your graph handles production traffic. 2 min read | 2022-07-11 | 2024-05-30 |
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-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 |
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 |
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 |
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-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 |
Sending Apollo Router Traces and Metrics to APM Tools Using OpenTelemetry observabilityrouter Sending Apollo Router traces and metrics to APM tools to gain insight into your graph's performance and stability. 2 min read | 2022-10-27 | 2024-05-30 |
Managing Apollo 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-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 |
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 |
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-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 |
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-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 |
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-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 |
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-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 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 |
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 |
Optimizing Custom Apollo Router Builds router Recommendations and considerations for minimizing build time when using custom Apollo Router builds. 1 min read | 2023-01-19 | 2024-05-30 |
Load Testing a Federated GraphQL API testingperformance Considerations for load testing with GraphQL in the Apollo ecosystem. 4 min read | 2023-02-01 | 2024-05-30 |
Does Apollo Router Replace My API Gateway? federationroutergateway The Apollo 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-05-30 |
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-05-30 |
Debugging Subgraph Requests from the Apollo Router or @apollo/gateway federationgatewayroutersubgraphs Log query plans and subgraph calls with the Apollo Router and @apollo/gateway to help debug problematic queries. 1 min read | 2023-04-13 | 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 |
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 |
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 |
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 |
Router Resource Estimator router Estimate the system resources you need to allocate for the Apollo Router to run production traffic. 1 min read | 2023-12-15 | 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 |
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-05-30 |
Enabling HTTP Subscriptions with the Apollo 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-05-30 |
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-02-05 |
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.