Доставка исходящих вебхуков
«Нам стоит добавить вебхуки».
Кажется, что это всего один эндпоинт. На деле — целый список задач, половину из которых вспоминают только тогда, когда клиент спрашивает, куда пропало событие за прошлый вторник.
- Подпись HMAC по схеме, с которой получатели уже умеют работать
- Метка времени и ID доставки внутри подписи — защита от replay-атак
- Экспоненциальные повторы, если сервис получателя недоступен весь день
- Джиттер (разброс интервалов), чтобы очередь запросов не обрушила оживающий сервис
- Понимание того, какие ошибки имеет смысл повторять, а какие — нет
- Ротация секретов с периодом наложения: мгновенно переключиться никто не может
- Неизменяемый журнал каждой попытки и каждого ответа
- Возможность для клиентов смотреть этот журнал без обращений в поддержку
HookPulse берет всё это на себя за одним POST-запросом.
Карта не требуется. 2000 доставок в пробном периоде.
Один запрос от вас. Всё остальное — наша забота.
Ваш обработчик отвечает мгновенно: отправка вебхука никогда не должна тормозить ваш собственный запрос из-за чужого медленного сервера. Дальше в дело вступаем мы: подписываем, доставляем, повторяем при сбоях и логируем.
Посмотреть пример проверки подписиawait fetch('https://hookpulse.altixcode.com/api/v1/apps/APP_ID/events', {
method: 'POST',
headers: { Authorization: 'Bearer hp_…' },
body: JSON.stringify({
type: 'invoice.paid',
payload: { id: 'in_123', amount: 4900 },
dedupeKey: 'invoice-123-paid',
}),
})Зачем подключать сервис, а не написать самим?
Большинство начинают писать сами. Подпись и первый повтор делаются за день. Всё остальное — джиттер, окна защиты от повторов, наложение ротации и журнал для клиентов — обычно урезают. А клиенты замечают именно это.
Весь список целиком, а не только первая половина
Подпись и один повтор почти любая команда собирает за вечер. Джиттер, правила повторной отправки, наложение ключей при ротации и понятный клиентам журнал часто идут под нож из-за дедлайнов — и именно этого потом не хватает пользователям.
URL эндпоинта проверяется перед каждой попыткой, а не только при сохранении
Имя хоста, резолвящееся в вашу приватную сеть, отклоняется при сохранении и перепроверяется по IP перед каждой попыткой доставки. Редиректы на непроверенные хосты строго блокируются. Отправитель вебхуков, проверяющий адрес лишь однажды, позволяет чужому некорректному или вредоносному эндпоинту сканировать вашу внутреннюю инфраструктуру.
Журнал, доступный не только вам, но и вашим клиентам
Журнал доставок доступен через изолированный, подписанный API с ограничением по времени — его легко встроить прямо в ваш раздел настроек. Вопрос «почему мне не пришел вебхук?» перестает быть тикетом, на который приходится отвечать вручную.
Четкий и прозрачный график повторов.
Шесть попыток на протяжении более семи часов, каждая со случайным смещением (джиттером), чтобы не перегрузить поднимающийся сервис лавиной запросов. Затем мы останавливаемся и сообщаем вам: если доставка не удалась за целый день, здесь нужен человек, а не еще один запрос.
- сразу
- +15sпопытка 2
- +2mпопытка 3
- +15mпопытка 4
- +1hпопытка 5
- +6hпопытка 6
Оплата за доставку.
Событие, отправленное на пять эндпоинтов, считается как пять доставок: это пять выполненных нами запросов и пять цепочек повторных попыток под нашей ответственностью. Повторные попытки в рамках одной доставки повторно не тарифицируются.
Pro
A platform with customers who want webhooks.
$49/ месяц
100,000 deliveries / month
Начать с плана ProScale
A marketplace, or an API with real traffic.
$149/ месяц
1,000,000 deliveries / month
Начать с плана Scale