The complicated bit when running a GraphQL service isn't putting together the initial schema, it's making sure to leave room for your schema to evolve, and ensuring that you're not painting yourself into a corner. In this session, we'll go through some lessons learned while developing Compass, a product we built from the ground up using GraphQL. We'll lay out some of the guidelines we've established to keep our APIs consistent, some hard and fast rules for backwards compatibility, as well as the processes we put in place to make it easy to keep things aligned. We'll also dive into how we've that all fits in with out GraphQL Gateway, which exposes a federated schema across the plethora of services that Atlassian runs, and the functionality we've isolated to the gateway.