Как безопасно изменить/эволюционировать контракт в gRPC (proto-файл) — добавить, удалить или переименовать поле — так, чтобы не сломать клиента, который уже в проде и не обновлён?

ВопросMiddleпроверка — СпринтСеть и API×3 на собесах17-q035

Так тоже спрашивают:

  • Есть 2 API gRPC, система работает давно, нужно добавить 2 поля (client_phone, updated_at) и удалить поле (orderID) — как это сделать?
  • Если у нас было поле address и мы решили переименовать его в full_address — всё сломается? А если полностью убрать поле address — всё сломается?
  • Можно ли менять номер поля в protobuf?
⌘ Enter — проверить