Odyssey

Lift-off V: Production & the Schema Registry
deprecated

Overview & SetupWhat is the schema registry?Registering our schemaDeploying Apollo ServerDeploying Apollo ClientField deprecationSchema changes in the registryMonitoring and scaling our API
8. Monitoring and scaling our API
2m

🏁 Almost at the finish line!

We're reaching the end of our Lift-off series, well done! Take a moment to appreciate how far you've progressed since you started on this journey with us, and also what you've done for the space cat community 🚀😸!

We've got a full-stack GraphQL application running in production and connected to the registry. But this is only really the start. Now that our app is live, we need to make sure it performs as expected as it continues to evolve and grow over time.

📊 Checking in

Let's check in on our API. On the Operations page, we can see an overview of our request rate, service time, and error percentage, including specific operations for each of these that might be worth drilling deeper into. By the way, this is one reason why it's useful to name each GraphQL operation you send from the client side.

https://studio.apollographql.com
Screenshot of the Operations page in Apollo Studio, showing metrics from the last day

Let's dig into the most highly requested operation: GetTrack. Most likely because there's a lot of activity going on in the homepage when a user clicks on a track card.

We can see the request rate (the number of requests that have been made), and the latency of the request (how long each request takes) over time. Since this is the most highly requested operation, we can start to investigate ways to optimize it or make it more performant.

We can also check our Fields page again. Remember how we deprecated the length field in the previous lesson? Now we want to check if it's safe to remove that field altogether. But we can see that it's still being used, and if we have client awareness set up, we can also see that only the mobile client prototype is still querying for that field. It's time to get in touch with that team!

https://studio.apollographql.com
Screenshot of the Fields page in Apollo Studio, showing the deprecated `length` field and the clients that still use it
What data points can you monitor on Apollo thanks to the schema registry?
What should we do before completely removing a field from our schema?

🎉 And we're done!

Thanks so much for joining us for Lift-off, the first series in our Odyssey journey.

There is still so much more we can do with GraphQL! As your app grows in size, complexity, and multiple teams become involved in consuming and maintaining the graph, the power of the registry will keep growing with it.

In future Odyssey series, we'll see how to stay on top of all of this with schema checks, client awareness, federation, and more.

If there is anything else you'd like us to cover, let us know. We'd also love to know what you thought about our very first Odyssey series. Leave us your feedback in the survey below!

See you in the next one!

Previous

Share your questions and comments about this lesson

Your feedback helps us improve! If you're stuck or confused, let us know and we'll help you out. All comments are public and must follow the Apollo Code of Conduct. Note that comments that have been resolved or addressed may be removed.

You'll need a GitHub account to post below. Don't have one? Post in our Odyssey forum instead.

              GraphQL

              An open-source query language and specification for APIs that enables clients to request specific data, promoting efficiency and flexibility in data retrieval.

              operations

              A single query, mutation, or subscription that clients send to a GraphQL server to request or manipulate data.

              GraphQL

              An open-source query language and specification for APIs that enables clients to request specific data, promoting efficiency and flexibility in data retrieval.

              operation

              A single query, mutation, or subscription that clients send to a GraphQL server to request or manipulate data.

              operation

              A single query, mutation, or subscription that clients send to a GraphQL server to request or manipulate data.

              field

              A unit of data that belongs to a type in a schema. Every GraphQL query requests one or more fields.

              type Author {
              # id, firstName, and lastName are all fields of the Author type
              id: Int!
              firstName: String
              lastName: String
              }
              querying

              A request for specific data from a GraphQL server. Clients define the structure of the response, enabling precise and efficient data retrieval.

              field

              A unit of data that belongs to a type in a schema. Every GraphQL query requests one or more fields.

              type Author {
              # id, firstName, and lastName are all fields of the Author type
              id: Int!
              firstName: String
              lastName: String
              }
              Odyssey

              Apollo's official learning platform, featuring interactive tutorials, videos, code challenges, and certifications.

              GraphQL

              An open-source query language and specification for APIs that enables clients to request specific data, promoting efficiency and flexibility in data retrieval.

              Odyssey

              Apollo's official learning platform, featuring interactive tutorials, videos, code challenges, and certifications.

              schema checks

              A GraphOS feature that ensures proposed subgraph schema changes successfully compose into a supergraph schema, don't break active clients, and follow best practices.

              Odyssey

              Apollo's official learning platform, featuring interactive tutorials, videos, code challenges, and certifications.

              NEW COURSE ALERT

              Introducing Apollo Connectors

              Connectors are the new and easy way to get started with GraphQL, using existing REST APIs.

              Say goodbye to GraphQL servers and resolvers—now, everything happens in the schema!

              Take the course