Evolving your data over time
In this section, we’ll discuss how we can manage the evolution of our data, and the schemas that define it, while still giving the data consumers the stability they need to build on the data with confidence.
We spoke in detail about how data evolves in an organization and why managing the evolution of data well is important for consumers in Chapter 4, Bringing Data Consumers and Generators Closer Together, in the Managing the evolution of data section. We also discussed the difference between a breaking change and a non-breaking change, and how for a breaking change we want to deliberately introduce some friction to ensure the migration to that new version is managed to reduce the impact on downstream consumers.
It’s this concept of versions that allows us to evolve schemas. We use versioning to track and manage the changes to a schema over time. The previous versions of the schema are used to validate whether the new version introduces...