One definition, many representations
·1 min
Once you have a data contract defined you can represent it in as many different ways as you want.
That could include:
- Protobuf, to configure a Kafka topic with a schema
- JSONSchema, to create client libraries for data validation before it leaves the publishing service
- Custom JSON or YAML to integrate with any number of tools and services such as data catalogs, cloud resources, and so on
Being both human and machine readable, the data contract is then the source of truth for everything about the data, and that truth is replicated as needed, usually by writing trivial code to transform it to a different format.
One day there could be a widely adopted open standard that replaces the need to create so many custom data structures.
Until then it will be common to to transform the data contract into many different representations.