1. Destination supergraph2m

๐Ÿš€ Destination supergraph

Welcome to Lift-off: destination supergraph! If you've enjoyed the Catstronauts ride so far and want to take your graph to the next level, look no further.

This course builds on the concepts and progress from the five previous installments of the Lift-off series. So, to follow along, you'll need to be familiar with the GraphQL and Apollo Server basics covered in those lessons (including schemas, resolvers, queries, and arguments).

Note: The demo apps in this course use Apollo Server 4 syntax, but you won't need to understand all the particulars. To read more about what's changed in Apollo Server, check out the official documentation on migrating to AS4.

In this course, we'll revisit our Catstronauts app and prepare it for its next big evolution. We want to add a feature: certifications!

So far, our catstronauts are able to take all sorts of courses about space travel before they blast off. Now, we want to expand our app so that users can actually get certified with Catstronaut pilot licenses! (Did you know YOU can get GraphQL certified too!?)

To get started with this, we'll need a new type for users, a way to keep track of certifications, and... hmm... actually, lets pause for a second. Building a whole new, fully functioning feature like this is a huge task. We'll have to make a bunch of additions to our graph to get this feature up and running. How can we make sure we're structuring our backend code in a way that's organized and easy to maintain?

The answer: by converting our Catstronauts graph into a supergraph.

Illustration of a supergraph, made up of multiple hexagons representing subgraphs

We'll use the lessons ahead to get to know the supergraph and its core concepts. Along the way, we'll build a supergraph for Catstronauts so that future developers can add features like certifications with ease. By the end of our time together, you'll have the skills and understanding to take your graph even further with our Voyage series.

So, let's start by setting clear goals for where we're headed. By the end of this course, we want our Catstronauts app to have:

  • a tracks subgraph that returns track information (like what we've already implemented)
  • a users subgraph that returns data about user details
  • a single endpoint that clients can query for both track and user details

You may be asking yourself, โ€œWhat are these subgraphs and supergraphs?โ€ We'll answer that next. Ready to supercharge your graph? Let's hop onto the supergraph express!

What type of graph are we building in this course?