Evolving a GraphQL API

Integrates development moves fast and usually there are refactoring efforts aiming to improve functionalities and the underlying code that makes them work.

As the API evolves, we need to avoid breaking changes that could impact existing integrations.
As per the GraphQL spec, deprecating parts of the schema is possible (https://spec.graphql.org/June2018/#sec--deprecated), but for how long should we leave them before removing them and how should we notify people about this?
I think it would be great to define and document a policy for managing deprecation

I’d love to read your opinions

Immediately if there are not external consumers of the API, any other case 6 months after notification.

In this case we would also need a way to be aware of external customers using the API and which operations they use. I’d also be cool to configure some kind of pipeline check against breaking changes or just as a warning in MR time