Виды таймаутов
В работе с внешними 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-механизм для этого случая.