Docs
Launch GraphOS Studio

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
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-112024-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-082024-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-312024-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-092024-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-032024-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-132024-03-05
Overload protection
serverroutersre

Implement GraphQL server overload protection for high traffic scenarios to ensure availability and reduce error rates.

2 min read
2022-07-082024-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-062024-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-292024-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-312024-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-032024-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-152024-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-172024-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-092024-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-092024-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-092024-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-092024-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-172024-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-192024-03-05
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-302024-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-312024-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-132024-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-222024-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-092024-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-072024-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-152024-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-032024-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-272024-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-312024-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-312024-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-122024-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-112024-02-05
Designing response types
schema-design

Learn different response type patterns for GraphQL queries and mutations.

1 min read
2022-08-032024-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-092024-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-162024-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-202024-02-05
Load testing a federated GraphQL API
testingperformance

Considerations for load testing with GraphQL in the Apollo ecosystem.

4 min read
2023-02-012024-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-282024-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-192024-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-102024-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-092024-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-302024-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-302024-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-122024-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-152024-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-222024-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

repo.

Adding new tech notes

If you have an idea for a new tech note, please

with the suggested changes or topic that you would like covered.

Next
architecture-patterns
Edit on GitHubEditForumsDiscord

© 2024 Apollo Graph Inc.

Privacy Policy

Company