Предпочтите добавочные изменения контракта и сохраните поведение старых клиентов. Ломающие изменения оформляйте новой версией с переходным периодом и явным сроком поддержки.
Вы хорошо затронули проверку контракта и границы доверия к фоновым задачам. А как бы вы обеспечили совместимость версий API при добавлении нового функционала экспорта?
Предпочтите добавочные изменения контракта и сохраните поведение старых клиентов. Ломающие изменения оформляйте новой версией с переходным периодом и явным сроком поддержки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Предпочтите добавочные изменения контракта и сохраните поведение старых клиентов. Ломающие изменения оформляйте новой версией с переходным периодом и явным сроком поддержки.
Для экспорта нужно версионировать не только HTTP API, но и сериализованные задания, формат результата и статусы. Новые worker должны понимать уже поставленные задачи; старые — не получать неподдерживаемые payload. Не доверяйте переданным из клиента путям и ownership ресурса. Добавьте контрактные проверки старых сценариев и способ безопасно вернуть пользователя к прежнему формату при проблеме.