graphql-spec icon indicating copy to clipboard operation
graphql-spec copied to clipboard

Add a section about schema evolution?

Open BoD opened this issue 4 months ago • 6 comments

Currently the spec doesn’t say much about schema evolution (this short paragraph). Would it make sense to have it cover this topic more extensively?

For instance, an exhaustive enumeration of what is considered a breaking change or not.

E.g.:

  • Adding a new type: not breaking
  • Making a non nullable field nullable: breaking
  • Adding a value to an enum: not breaking

As a client developer it is super important to know what changes can happen and what the code needs to be resilient to. At the moment this depends on a particular service’s policies, rules and customs. In certain projects there may even be no clear rules, making things fragile.

Having this as part of the spec would strengthen the contract between the client and the server, and help making schema evolution a bit less of a delicate topic?

BoD avatar Jun 03 '25 17:06 BoD