Перейти к содержимому
10 / 15

Реестр схем: какие бывают типы совместимости и как выкатывать изменения формата?

Реестр схем хранит версии схем сообщений и проверяет совместимость при регистрации новой. В сообщение пишется не сама схема, а её идентификатор, поэтому полезная нагрузка остаётся компактной. Типы совместимости определяют, что можно менять: BACKWARD (новый потребитель читает старые данные) разрешает удалять поля и добавлять поля с значением по умолчанию — это дефолт и он оптимизирован под порядок «сначала обновляем потребителей»; FORWARD (старый потребитель читает новые данные) разрешает добавлять поля и удалять поля с умолчанием — под порядок «сначала продюсеры»; FULL сочетает оба и разрешает только добавление и удаление полей с умолчанием; NONE отключает проверку. Практическое правило, покрывающее почти все случаи: добавляйте поля только с значением по умолчанию, никогда не переиспользуйте имена и номера полей, не меняйте типы. Переименование поля — это удаление плюс добавление, а не переименование.

Реестр схем: какие бывают типы совместимости и как выкатывать изменения формата? | JScriptiser