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 |
---|---|---|
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-04-15 |
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-04-01 |
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-03-18 |
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-03-15 |
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-03-11 |
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-03-07 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-03-05 |
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-02-16 |
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-02-16 |
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-02-16 |
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-02-05 |
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 |
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-02-05 |
Designing response types schema-design Learn different response type patterns for GraphQL queries and mutations. 1 min read | 2022-08-03 | 2024-02-05 |
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-02-05 |
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-02-05 |
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-02-05 |
Load testing a federated GraphQL API testingperformance Considerations for load testing with GraphQL in the Apollo ecosystem. 4 min read | 2023-02-01 | 2024-01-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-01-12 |
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-01-12 |
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-01-12 |
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 |
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-01-12 |
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-01-12 |
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-01-12 |
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-01-12 |
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-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 QubitPi/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.