Production Ready Graphs

Putting your data graph into production doesn’t have to be a guessing game or scary experience. This collection is composed of written and video resources focused on stability, monitoring, schema management, schema design, and best practices.

  • Backend
  • How-to
  • Platform

Go from 10,000 feet right to ground level with this mix of guides, books, videos, and tutorials.

Kurt Kemple
Developer Advocate at Apollo

Principled GraphQL – An Opinionated Guide to Data Graphs

At Apollo, we’ve been building industry leading data graph technology since 2015, and we estimate our software is now used in over 90% of GraphQL implementations. Over the years, we’ve had thousands of conversations with developers implementing GraphQL at companies of all sizes. We want to share what we’ve learned, so we’ve distilled their experiences into a set of best practices for creating, maintaining, and operating a data graph.

Geoff Schmidt and Matt DeBergalis · How-to

Blog post

Announcing the GraphQL at Enterprise Scale Guide [Free Ebook]

GraphQL helps us build apps faster. Data is more discoverable, easier to query, change, and evolve over time. Most companies that adopt GraphQL typically take one of these four patterns: Client-only: Client teams that are excited to take advantage of GraphQL’s client-centric data-fetching capabilities may add a GraphQL API within their own application for the […]

Michael Watson · Announcement, How-to


Designing GraphQL Schemas

When you start working with GraphQL, you’ll start to realize that GraphQL is going to change your design process. Instead of looking at your APIs as a collection of REST endpoints, you’ll start looking at APIs as collections of types. Before breaking ground on your new API, you need to think about, talk about, and formally define the data types that your API will expose. This collection of types is called a schema.

Moon Highway · Backend, How-to


Refactoring Your GraphQL Schema

A GraphQL schema is a tool for communication across teams. When we work together to define a schema with the schema definition language, we’re deciding how everyone using our API will consume the data. We want to make it as clear and simple as possible for consumers to send operations to our API without errors.

Moon Highway · Backend, How-to

Blog post

GraphQL Schema Design: Building Evolvable Schemas

This is a guest post by Marc-Andre Giroux, who is currently working on the ecosystem API team at GitHub. He’s been writing and thinking a lot about GraphQL continuous evolution and schema design. His book, Production Ready GraphQL, was released in early March 2020. While GraphQL allows us to continuously evolve our schemas, using deprecations, for example, […]

Marc-André Giroux · Backend, Schema Design


A Battle Tested Guide for Backend Developers

Francesca has been working with GraphQL for years at scale, at companies like Trulia and Pinterest, and has been key to a lot of migration and development. In her talk, A GraphQL Guide for Backend Developers, she walks through a lot of very good, battle-tested advice. Since the event wasn’t captured, here’s a brief summary of her talk (taken with her explicit permission).

Sarah Drasner & Francesca Guiducci · Backend, How-to

From the community

GraphQL In Production Panel – GraphQL Summit 2020

Featuring: Matt DeBergalis, CTO at Apollo (Moderator) Marc-Andre Giroux, Senior Platform Engineer at GitHub Andy Vajda, Tech Lead at American Airlines Mike Byrnes, Principal Software Engineer at Priceline Shruti Kapoor, Senior Software Engineer at PayPal

Backend, How-to, Platform


Get Started with Apollo Studio

Apollo Studio (formerly Graph Manager) is a cloud platform that helps you build, validate, and secure your organization’s data graph.

How-to, Platform


Manage Your Schema with Apollo Studio

The Apollo schema registry is a central hub for managing your data graph. After you register your schema, you can use Apollo Studio to explore the schema’s types and fields, track its change history, and even build and run operations against it.

Backend, How-to, Platform


Analyzing Your Graph’s Performance with Tracing

Apollo includes a performance monitoring system which, through a single line of configuration, brings insights about the queries being executed against your graph, the fields being used in your graph, the clients making requests against your graph, how long your requests are taking, and more.

Backend, Platform

Blog post

Who’s Using My Graph?

We’re all used to celebrating big, sparkly successes, like major releases, new customer successes, and the end of a long saga of re-architecture. My favorite kind of success, however, often goes unnoticed: the success of avoiding failure. In our day-to-day lives as engineers, sadly, these events come to pass without much recognition: the sweet quietude of an […]

Adam Zionts · Announcement, Platform

Blog post

Register Schema Changes Automatically with Schema Reporting

Apollo Graph Manager’s schema registry powers a ton of features that help you explore, maintain, and monitor your data graph. These features are at their most powerful when the schema you register with Apollo stays up to date with the schema you run in production. To help teams keep their schemas synced, we’re excited to […]

Ran Magen · Announcement, Backend, Platform


View Your Graph History and Schema Changes with Apollo Studio

On this episode of Mission Briefing Adam Zionts will show Kurt Kemple the new schema reporting features in Apollo Graph Manager like graph history and schema change notifications.

Adam Zionts · How-to, Platform

Blog post

Introducing Schema Change Notifications with Apollo Graph Manager

One of the biggest benefits of a GraphQL-powered data layer is the ability to maintain a single schema that continuously evolves to reflect your collection of products and features. As your schema evolves, it’s essential to keep your teams informed whenever you introduce new capabilities or deprecate existing ones. To help with that, we’re delighted to […]

Caydie Tran · Announcement, Platform

Blog post

Introducing the New GraphQL CI In Apollo Studio

A Better Way to do CI For GraphQL When deploying code, you want to be sure that nothing will blow up when things go live. To prevent downtime, it’s a good practice to use CI (continuous integration) to run tests, checks, and ensure your app is fully ready to hit production. If you’re running GraphQL […]

Caydie Tran · Backend, Platform

Blog post

User roles are now available in Apollo Studio

tldr; at the request of many (and just because we really needed it), you can now assign specific roles to members of your organization in Studio on paid accounts. Please email if you’re interested. For years, every user in every organization in Studio has been able to operate with full admin privileges, by default. […]

Danielle Man · Platform


Production Ready GraphQL

Over the last few years, I helped build and maintain some of the biggest GraphQL APIs out there at both Shopify and GitHub. During those years, I also worked with various companies with their adoption of GraphQL. From my experiences with GraphQL, I’ve observed the good, the bad, and the ugly. This is what lead me to write this book: A collection of learnings and good practices when building GraphQL schemas at scale.

Paid access Marc-Andre Giroux · Backend, How-to


Advanced GraphQL Course

Learn to secure your API with authentication, handle errors within resolvers, and add in integration and unit tests. You’ll also learn to access realtime data using subscriptions and expand on the capability and flexibility of GraphQL with custom directives!

Paid access Scott Moss · Backend, How-to

Related collections

GraphQL Tooling and Code-gen

One of the many benefits of adopting GraphQL is the ever growing eco-system of tools and services available to help you build your apps even faster. From code-gen to configuring Apollo Server, this collection has a range of tools, tips, and configuration best practices designed to boost your productivity.

  • Backend
  • Frontend
  • How-to
  • Platform

Federation 101

It can be challenging to serve an enterprise-scale data graph with a single, monolithic GraphQL server. To keep teams productive, you can use Apollo Federation to divide your graph’s implementation across multiple composable services. Learn about federation principles, tooling, and how to implement federation.

  • Backend
  • Platform


When building a GraphQL endpoint, you’ll probably have to face the question of how to control who can see and interact with the data in your API. This typically involves authentication (determining who you are) and authorization (determining if you have access). In this collection, we’ll cover strategies and best practices for both.

  • Backend
  • Frontend

Error Handling with Apollo

At Apollo, we’ve heard a lot of desire from GraphQL developers for more guidance on how to do error handling. Learn how to communicate errors to your client in an organized way, and open up new possibilities for tooling.

  • Backend
  • Frontend

© 2021 Apollo Graph Inc.