Эволюция схемы данных в AVRO, как меняться без проблем?

Wait 5 sec.

Привет, Хабр! Меня зовут Владислав, я занимаюсь разработкой расчётных систем в Мир Plat.Form. Два года назад мы перешли от взаимодействия через REST к использованию Kafka между системой Фронт-Офиса, в которой хранятся данные об авторизованных транзакциях, и системой Бэк-Офиса, ответственной за выполнение клиринга. При этом мы реализовали собственный сериализатор для работы с AVRO сообщениями. Более подробно о причинах выбора такого подхода я рассказал в статье.Тогда нам не требовалась поддержка изменения схемы данных, так как контракт взаимодействия был стабильным на протяжении нескольких лет.Но в прошлом году перед нами встала задача внедрения новой интеграции, что могло повести за собой частые изменения в модели данных, из-за чего нам пришлось пересмотреть подход к работе с AVRO сообщениями.В этой статье я расскажу:1. Что такое эволюция данных и почему она критична для Kafka при работе с AVRO сообщениями.2. Какие варианты решения мы рассмотрели.3. Как реализовали поддержку изменений схемы.4. Подводные камни, с которыми столкнулись, и как их обошли. Читать далее