Что произошло: в течение 51 минуты обновления бронирований между CRM и Exely обрабатывались с задержкой вместо привычных 10–30 секунд. Часть новых бронирований и отмен не появлялась в календаре объекта сразу.
Кого затронуло: 212 объектов размещения с активной интеграцией Exely (из 340 подключённых), около 1 180 отдельных записей календаря (заезды, выезды, блокировки дат) прошли синхронизацию с опозданием.
Потери данных: отсутствовали — все записи были доставлены после устранения инцидента, ни одно бронирование не потерялось и не задвоилось. Риск двойного бронирования на пике инцидента оценён как низкий: прямые продажи через сайт продолжали писать в CRM напрямую, минуя очередь Exely.
Первопричина — незадокументированное снижение партнёрского rate-limit'а на стороне Exely (со 120 до 40 запросов в минуту) без изменения версии API. Наш батч-джоб синхронизации календаря был жёстко настроен на старую квоту и не умел адаптироваться к ответу 429 Too Many Requests иначе, чем через фиксированный экспоненциальный ретрай, что при постоянно превышаемом лимите приводило к нарастающей очереди, а не к её сокращению.
Что изменили: