Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Evolution of GraphQL Schemas @ GitHub

Continuous Evolution of GraphQL Schemas @ GitHub

Evolving an API, let alone a public one, is no easy task. The standard for GraphQL APIs has been to use continuous evolution instead of versioning schemas. While continuous evolution is nothing new in the world of APIs, GraphQL's built in deprecations, type system and query language brings a set of interesting advantages when opting for that strategy.

Evolving GraphQL schemas still brings a lot of questions: Which integrators are using this field? Can we safely remove this deprecated enum value? With hundreds of developers contributing to a single GraphQL API, the ecosystem team at GitHub had to come up with an answer to these questions, and better tooling to help engineers build evolvable GraphQL APIs.

This is the story of how GitHub gained greater confidence in building and evolving GraphQL schemas.

Marc-Andre Giroux

September 25, 2018
Tweet

More Decks by Marc-Andre Giroux

Other Decks in Technology

Transcript

  1. 7 API evolution is the concept of striving to maintain

    the “I” in API, the request/response body, query parameters, general functionality, etc., only breaking them when you absolutely, absolutely, have to. - PHIL STURGEON
  2. 9 1. Avoid breaking changes the best we can. 2.

    Make it easy for engineers to evolve our schemas. 3. Make it easy for users to evolve their clients.
  3. 15

  4. 16

  5. 17

  6. 19

  7. 21

  8. 25

  9. 26

  10. 33

  11. 34

  12. 38

  13. 42

  14. 50

  15. 51

  16. 52

  17. 54

  18. 55

  19. 56