Актуальная и сейчас часто обсуждаемая инженерами тема Data contracts (дата-контракты). По своему смыслу - это создание и применение структурированных спецификаций на предоставление и получение данных, с соблюдением к контроля версий и управления кодом этих спецификаций.
В блоге Data Products хороший вводный текст пол дата-контракты в контексте современного стека данных [1]. Многое в реализации сейчас упоминается, или в контексте спецификации формата данных Avro, или через реестр схем Kafka. Он называется Confluent (Kafka) Schema Registry.
В основном разговоры про дата-контракты идут в контексте работ множества разделенных команд внутри больших компаний. Когда за разные продукты отвечают небольшие группы разработчиков и они зависят друг от друга и, в первую очередь, от тех команд которые предоставляют данные из первоисточников.
Главное не путать data contracts из инженерии данных с data contracts из Windows Communication Framework (WCF) входящем в .NET. Название совпадают, применение тоже похоже, но в в инженерии данных - это универсальное описание схемы данных, а в WCF - это узко заточенная спецификация.
Ссылки:
[1] dataproducts.substack.com/p/an-en…ontracts
#dataengineering