Виды таймаутов

В работе с внешними API различают несколько уровней:

  • Connection timeout — время на установление TCP-соединения. Обычно 1–5 сек. Если сервер недоступен совсем — истекает этот таймаут.
  • Read / Response timeout — время ожидания данных после установления соединения. Это основной параметр для API персонализации.
  • Total request timeout — суммарный лимит на весь запрос от начала до конца.
# Пример: HTTP-запрос к API рекомендаций
connection_timeout = 1000 мс  # 1 сек — установить соединение
read_timeout       = 100 мс   # 100 мс — получить данные
→ Если рекомендации не пришли за 100 мс → показываем fallback

Почему таймаут критичен для e-commerce

Скорость загрузки напрямую влияет на конверсию. Каждые +100 мс задержки снижают CR на единицы процентов в высококонкурентных нишах. Если блок рекомендаций «держит» загрузку страницы — это риск хуже, чем его отсутствие.

Правило: лучше показать пустой блок или бестселлеры из кэша за 0 мс, чем ждать персонализации 3 секунды.

Graceful degradation: что показывать при таймауте

Компонент Fallback при таймауте API
Блок рекомендаций Бестселлеры категории из локального кэша
Персонализированный баннер Дефолтный баннер без персонализации
Попап с предложением Не показывать совсем
Результаты поиска Текстовый поиск без AI-ранжирования

Реализация fallback — ответственность фронтенд-разработчика интеграции. Большинство SDK платформ персонализации предоставляют callback-механизм для этого случая.