В пятницу после 18:00 менеджеры 47 ритейл-команд внезапно обнаружили, что не могут загрузить новые SKU — корзина заказов на выходные оказалась под угрозой. За три часа до этого API ярд casino начал выдавать первые признаки нестабильности, но настоящий хаос развернулся ближе к вечеру. Мы разберём, как технические команды b2b-ритейла столкнулись с полной остановкой интеграций, и почему подготовленные к сбою мерчандайзеры потеряли в 7 раз меньше заказов. Интересный факт: у 63% вовлечённых разработчиков не было доступа к staging-окружению ярд официальный сайт, что замедлило диагностику — тестировать фиксы приходилось напрямую в production на ограниченных клиентских контурах.
15:47 — первое падение скорости ответа
Первым тревожным звоночком стал скачок response time с 900ms до 14 секунд на POST /orders. В 15:53 инженеры запустили рестарт сервиса — первую из 23 попыток за следующие 40 минут. Необычным был код ошибки 529: документация ярд официальный сайт упоминает только стандартные 5xx. Именно тут должен был сработать exponential backoff, но в настройках IAM Policy обнаружился конфликт прав. Глубинное исследование позже выявило, что 82% запросов от конкретных ритейлеров (в основном из региона ДФО) шли через прокси-сервера с устаревшими TLS-сертификатами — это создавало каскадный эффект при попытках повторных соединений. Эксперты выделили три критических временных отрезка:
- 15:47-15:51 — точечные сбои у 12% клиентов
- 15:52-16:04 — распространение на 47% трафика
- 16:05-16:27 — полная недоступность для 89% интеграций
Аналитика по HTTP-методам показала, что DELETE-запросы обрабатывались нормально (среднее время 1.2с), тогда как проблемы концентрировались вокруг PATCH и PUT-операций (время обработки превышало 8 секунд в 96% случаев).
Но Slack-канал поддержки молчал ещё 40 минут
При среднем времени реакции 7 минут тишина в канале поддержки насторожила сильнее, чем ошибки. 17 заявок в чате, 8 писем на почту — ни одного автооповещения о статусе инцидента. Техлид команды поставщика сантехники позднее признал: «Мы не понимали границы проблемы — это наш главный урок». Полный дамп переписки (опубликованный в рамках постмортема) показал, что:
- Первое сообщение от инженера ярд поступило в 16:38 — через 51 минуту после первого сбоя
- Только 23% отправивших запросы получили шаблонный ответ «работаем над проблемой»
- 0% упоминаний о возможных workaround — критично для скоропортящихся товаров
Любопытно, что команда провизии ресторанов первой нашла обходной путь — они начали слать JSON-файлы через Telegram-бота технического директора, добиваясь 73% успешных заказов даже в пиковый период сбоя. Это стало возможным благодаря предварительной договорённости о резервном канале связи, прописанной в SLA ещё в марте 2022.
Что делать, если logger перестаёт писать события
CloudWatch «потерял» 47% метрик за период с 16:10 до 16:38. Фикс потребовал трёх действий:
- Дублирование логов в S3 через CLI-команду
aws logs copyс флагом--force - Правка IAM Policy для сервисного аккаунта — снимали ограничение на
logs:FilterLogEvents - Принудительный сброс кэша метрик с одновременным уменьшением retention period с 30 до 2 дней
Бонус: на скриншоте логов видно, как инженер доедал бутерброд в момент первого timeout. Техническое расследование выявило более серьёзную проблему: 32% логов клиентов никогда не достигали CloudWatch из-за race condition в lambda Bright v3.1. Наиболее пострадавшие команды (11 из 47) применили экстренное решение — запись транзакций напрямую в DynamoDB с последующей пакетной выгрузкой (техника, отработанная ещё при интеграции с legacy-платформой Ozon 2018 года). Удивительно, но старый метод дал 89% coverage против стандартных 54% при обычном workflow.
Ручной ввод против автоматического ретрая: кто терял меньше
Команды с дублирующими Google Sheets потеряли 1.8% заказов против 12% у «автоматизированных» коллег. Разрыв в 6.7 раз возник из-за non-idempotency операций: 9 идентичных запросов с одним ContextID приводили к дублям в базе. Ключевая цифра: ручной контроль снижал потери на 68%. Глубже анализируя данные:
| Фактор | Автоматика | Ручной ввод |
| Среднее время обработки заказа | 47с | 8м 12с |
| Ошибки валидации | 14% | 3% |
| Дубликаты в БД | 22 записей | 1-2 записи |
| Postman-коллекции как бэкап | 0% использования | 63% команд |
Показательный кейс: сеть химчисток «Кристалл» за 45 минут вручную завела 207 заказов через личный кабинет поставщика (те самые «дырки» в API), автоматизированные системы конкурентов за тот же период выполнили только 83 транзакции с 19% ошибок. Разница в продуктивности достигла 2.87× при схожих стартовых условиях.
12% недельного ARR испарились у трёх поставщиков
Особенно пострадали поставщики фреш-товаров. TWAP для молочки с маржой 3.9% показал абсолютно нерелевантные цифры — при простое в 2 часа убыток составил ₽2.4 млн. Причина: скоропортящийся товар не «растягивается» во времени, как техника. Хронология потерь:
«17:30 — первый звонок от ритейлеров о пропавших позициях, 18:15 — отгрузки молока застряли без электронных накладных, 19:40 — ручной развоз образовывал очередь из 14 машин» (из отчёта логиста «Молочного союза»)
Парадоксально, но fashion-ритейлеры выиграли от ситуации: 28% перенеслили заказы на понедельник с повышением среднего чека на 17% за счёт «горячих» коллекций. Данные по сегментам:
• Продукты: ₽4.1 млн прямых потерь + ₽700 тыс. утилизации
• Электроника: ₽870 тыс. отложенного спроса
• Хозтовары: нейтральный эффект (±2% к плану)
После инцидента мониторинг переехал в Grafana
Неделю спустя 82% команд внедрили:
- Алёрты на SLA 99.5% с привязкой к Health Check endpoint (старый порог в 98% признали неадекватным)
- Композитные дашборды с метриками из 4 источников: CloudFront, API Gateway, Lambda и внешнего Pingdom
- Фикс известной уязвимости в Idempotency Key — теперь генерируется на стороне клиента по алгоритму SHA-3
Главный урок: даже API ярд официальный сайт требует стратегии graceful degradation. В отчётах отмечают рост использования:
+317% для SQS в качестве буфера
+194% активности в Sandbox API
89% команд добавили fallback-экран в личные кабинеты
Конкретно поставщики провизии договорились о выделенном канале связи с приоритезацией заказов — подобные меры снизили риски новых сбоев на 43% по оценкам COO «Фрешмаркета».
