Sasha Solomon
1 min readNov 6, 2018

--

Hey Caleb! Thanks for the question!

We would handle non-backwards compatible changes the same way that suggested in GraphQL: by creating new fields (and eventually deprecating the old fields)

Because our GraphQL schema is derived from the Repositories, the Repositories are where we would make any changes to the data shape (including adding new fields). So if say we had a Post that had a field creator and right now that field is a String. If we wanted to change that field to an object that had a name field and a username field, we would need to add that field(with a different name, maybe fullCreator or creatorObject or something) to the protobuf or in some cases, we can add the field to the Repository only. In both cases, the new field gets derived in the final schema.

Eventually, we might be able to remove the field entirely and we can annotate it with the @deprecated annotation.

--

--

Sasha Solomon
Sasha Solomon

Written by Sasha Solomon

software engineer @twitter, previously @medium. doing scala + graphql. pokemon gym leader. potato compatible. @sachee

No responses yet