# GraphQL Schema Design: Building Evolvable Schemas

DevFeed: [GraphQL Schema Design: Building Evolvable Schemas](<https://devfeed.tech/articles/graphql-schema-design-building-evolvable-schemas-23324.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/graphql-building-evolvable-schemas>)

Author: Marc-André Giroux

Published: 2018-06-01T18:52:28Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [schema design](<https://devfeed.tech/topics/schema-design.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [backend](<https://devfeed.tech/tags/backend.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [guest-post](<https://devfeed.tech/tags/guest-post.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>)

## AI overview

This guest post explains how to design GraphQL schemas that can evolve without serious breaking changes. It recommends using object types instead of simpler structures such as arrays and treating deprecations as a last resort, supported by better tooling and documentation.

## Source excerpt

This is a guest post by Marc-Andre Giroux, who is currently working on the ecosystem API team at GitHub. He's been writing and thinking a lot about GraphQL continuous evolution and schema design. His book, Production Ready GraphQL, was released in early March 2020. While GraphQL allows us to continuously evolve our schemas, using deprecations, for example, we should not take the decision of deprecating schema members lightly.