В обычный день покупки быстро появляются в системе клиентских коммуникаций. Но в первые минуты распродажи заказов становится намного больше: их обработка задерживается, напоминания продолжают уходить уже купившим клиентам. При этом общий объём за месяц может оставаться внутри оплаченного тарифа. Причина в том, что месячный объём и скорость обработки в конкретную минуту — разные ограничения.

API (Application Programming Interface) — программный интерфейс, через который одна система обращается к другой по заданным правилам. [1] Например, магазин отправляет запрос «создать заказ», а платформа возвращает ответ о его приёме. API-метод — конкретная доступная операция. Для разных методов могут действовать разные лимиты: допустимое число запросов за секунду, размер передаваемой партии или число одновременных обращений.

Если запросы поступают быстрее, чем их можно обработать, возникает очередь — накопленные операции, ожидающие выполнения. Для CRM важно, сколько придётся ждать и останется ли сообщение полезным к моменту отправки.

Рассчитаем нагрузку на условном примере и составим план проверки перед распродажей. Он поможет задать поставщику вопросы о реальной скорости и восстановлении после пика.

Переведите бизнес события в техническую нагрузку

Одна покупка не всегда равна одному запросу. Магазин может отдельно создать профиль, обновить поля, записать заказ и передать разрешения. Дополнительную нагрузку создают повторные попытки, чтение результата и обратные статусы.

Подготовьте таблицу для основных операций: сколько их будет в пиковую минуту и сколько обращений вызывает каждая. Учитывайте массовые импорты и плановые синхронизации, которые продолжают работать во время распродажи.

Если платформа поддерживает пакетную передачу, число запросов уменьшится. Но ограничения размера пакета, веса данных и обработки отдельных ошибок сохраняются. Большой пакет также может дольше ждать заполнения, что увеличивает задержку редких событий.

Условный расчёт очереди

В первые десять минут акции магазин получает 12 тысяч заказов. Средний поток внутри этого пика — 20 заказов в секунду. Если каждый вызывает три API-запроса, получаем 60 запросов в секунду.

Допустим, отдельный согласованный лимит для этой интеграции — 40 запросов в секунду, а общий текущий поток после акции снижается до 10. Предположим для простоты, что запросы одинаковы по трудоёмкости, других ограничений нет и обработка действительно достигает лимита.

За 600 секунд пика очередь увеличится на (60 − 40) × 600 = 12 000 запросов. После пика для её разбора остаётся 40 − 10 = 30 запросов в секунду. Потребуется ещё 400 секунд, то есть 6 минут 40 секунд.

Если бизнес ожидает применять покупки в течение двух минут, такая конфигурация не подходит. При этом средняя дневная нагрузка может быть очень низкой. Расчёт показывает нижнюю оценку времени при заданных предположениях; реальные ошибки и колебания нагрузки могут увеличить задержку.

Проверьте область действия лимита

Ограничение может применяться ко всему аккаунту, рабочей среде, ключу или отдельному методу. Если три команды используют общий лимит, каждая не может независимо считать его полностью доступным.

Braze в документации API описывает ограничения по методам, ответы при превышении и служебные поля ответа, или заголовки, с информацией о лимите. [2] Для собственной платформы запросите такую же точность: какой ресурс ограничен, за какой интервал и как приложение узнаёт об остатке.

Не пытайтесь обходить согласованный общий лимит созданием нескольких ключей. Вместо этого согласуйте допустимую пропускную способность, пакетирование и распределение нагрузки. Ключ API — код, который используется для доступа программы к системе. Увеличение числа таких ключей может не изменить реальное ограничение и усложнит управление доступом.

Как реагировать на превышение

Код 429 обычно сообщает о слишком частых запросах. Получатель может передавать рекомендуемое время ожидания. Политика повторов должна учитывать его и документацию конкретного API, ограничивать число попыток и не создавать синхронный шквал повторных обращений.

Практически это означает очередь, увеличивающиеся интервалы ожидания и небольшой случайный разброс между попытками. Но повторять безопасно только операции с подходящей защитой от дублей. Если ответ потерялся после выполнения действия, повторная отправка не должна создавать второй заказ или сообщение.

Коннектор — готовый компонент для подключения к определённому продукту. Microsoft в документации платформы интеграции Logic Apps отдельно разбирает ограничение скорости на уровне коннектора и вызываемого сервиса. [3] Поэтому диагностика должна показывать, где именно возник отказ. Замена внешнего коннектора не поможет, если ограничение находится у конечного API.

Расставьте приоритеты в очереди

Срочные запреты и текущие покупки не должны ждать за большим импортом истории, если от этого зависит корректность отправок. Согласуйте отдельные очереди или резерв пропускной способности для критичных операций, когда платформа и архитектура это позволяют.

Приоритет не отменяет порядок внутри одного объекта. Поздний статус «заказ создан» не должен перезаписать уже полученную оплату. Для этого используются версия изменения или другое согласованное правило обработки состояния.

У сообщения задайте срок полезности. Просроченное предложение после восстановления очереди отменяется или пересчитывается. Возврат работоспособности системы не означает, что все накопленные маркетинговые действия по-прежнему нужны клиенту.

План нагрузочной проверки

Тест должен включать обычную нагрузку, резкий пик, временную остановку получателя и восстановление. Используйте безопасную среду с отключёнными реальными отправками и согласуйте испытание с владельцами всех задействованных систем.

ПроверкаЧто измеритьУсловие решения
Обычный потокЗадержка и доля ошибокСоответствие рабочему требованию
Короткий пикРост очереди и самые старые событияСохранение допустимого времени решения
Остановка на заданный срокОбъём накопления и сохранность данныхНет необъяснённых потерь
ВосстановлениеСкорость разбора и дублиВозврат к норме в согласованный срок
Параллельный импортВлияние на критичный потокИстория не блокирует текущие запреты

Измеряйте путь до применения данных в сценарии. Быстрый ответ API может означать только приём в обработку. Если платформа подтверждает запрос, а профиль — запись с данными клиента — обновляет позже, этот промежуток входит в бизнес-задержку.

Как оформить запрос поставщику

Передайте профиль нагрузки с размером записей, составом методов, длительностью пика и ожидаемым сроком восстановления. Попросите подтвердить конфигурацию, ограничения и порядок временного увеличения мощности.

После проверки зафиксируйте фактическую пропускную способность и условия, при которых она измерена. Перед следующей крупной акцией повторная проверка нужна, если изменились объём, состав событий, интеграции или тариф. Это позволяет готовиться к конкретному риску, сохраняя разумный объём испытаний.

Источники

[1] MDN Web Docs. API. Glossary. Определение программного интерфейса.

[2] Braze. Rate limits. Техническая документация API.

[3] Microsoft. Handle throttling problems or 429 Too Many Requests errors in Azure Logic Apps. Microsoft Learn.