Ресурсы · 54
Веб-хуки: обработка повторов, задержек и восстановления
Преобразуйте полученное уведомление в уникальный, отслеживаемый бизнес-эффект, восстанавливаемый после сбоя.
Обновлено · 3 min
Чего помогает достичь это руководство
- Аутентификация уведомлений
- Разделение получения и обработки
- Предотвращение дублирования эффектов
- Восстановление заблокированных событий
Быстрая проверка
- Какие байты подписываются?
- Когда получение является устойчивым?
- Могут ли два работника действовать совместно?
- Гарантирует ли поставщик порядок доставки?
- Как найти потерянное событие?
Пошаговый метод
- 1
Ознакомление с контрактом поставщика
Типы записей, версия, контекст учетной записи, подписи, время и правила повторной попытки. Stripe заявляет, что порядок доставки не гарантируется, и могут возникать дубликаты; не применяйте задержку, специфичную для Stripe, ко всем API.
Результат: контракт поставщика с указанием даты.
- 2
Проверка перед эффектами
Проверка подписей с использованием библиотеки и исходного тела запроса, требуемого поставщиком. Ограничение допустимых размеров и типов. Тестирование недействительных подписей и неожиданного контекста учетной записи в авторизованной среде без регистрации секретов.
Результат: отказы без последствий.
- 3
Сохранение перед подтверждением
Разделение надежного получения и медленной обработки. Если очередь не может принять событие, не сообщайте о нем как о сохраненном. Успех означает получение в соответствии с вашим контрактом, а не обязательно завершение бизнес-действия.
Результат: состояния получения, обработки, завершения и блокировки.
- 4
Обеспечение идемпотентности
Определение ключей событий и идентификации бизнес-эффекта. Тестирование одновременных повторов, а не только последовательной доставки. Предварительная проверка без атомарных ограничений или блокировок может позволить двум рабочим процессам создать один и тот же эффект.
Результат: доказательство уникальности эффекта.
- 5
Обработка задержек и сбоев
Не следует предполагать, что старое уведомление описывает текущее состояние. Обращайтесь к источнику, когда это позволяет контракт, и применяйте проверенные бизнес-переходы. Сохраняйте события, которые еще не могут быть интерпретированы.
Результат: переходы и тесты обратного порядка.
- 6
Согласование и повторное воспроизведение
Подготовка очереди ошибок с указанием владельца, причины, попыток и закрытия. Сохранение защиты от дубликатов во время повторного воспроизведения. Периодическое сравнение поставщика и приложения: успешное восстановление не доказывает, что событие не было пропущено.
Результат: процедура восстановления и отчет о несоответствии.
Многоразовый рабочий лист
Заполните ваши авторизованные наблюдения. Эти поля являются рабочим шаблоном, а не наблюдаемыми результатами.
| Поле | Информация для записи |
|---|---|
| Событие | Поставщик, учетная запись, идентификатор и версия |
| Подтверждение | Проверенная подпись и надежная метка времени |
| Эффект | Ключ бизнеса, состояние и подтверждение уникальности |
| Восстановление | Причина, попытка, владелец и завершение |
Вымышленный пример
Иллюстративная ситуация
Вымышленный пример: два работника получают одно и то же уведомление о подтверждении во время восстановления.
Решение и ожидаемые доказательства
Ограничение, имеющее уникальный бизнес-эффект, и состояние транзакции позволяют выполнить только одно действие, при этом обе доставки остаются отслеживаемыми. Ограничение, имеющее уникальный бизнес-эффект, и состояние транзакции позволяют выполнить только одно действие, в то время как обе доставки остаются отслеживаемыми.
Различение механизмов
| Механизм | Назначение | Проверка или ограничение |
|---|---|---|
| Подпись | Проверка источника в соответствии с контрактом | Не делает эффекты уникальными |
| Дедупликация | Распознавание повторных уведомлений | Также проверка параллельного доступа и влияния на бизнес |
| Согласование | Поиск пропусков и различий | Указание источника и периода |
Показатели управления
| Показатель | Что он измеряет | Первое действие |
|---|---|---|
| Возраст очереди | Задержка незавершенных событий | Проверка самых старых |
| Дублирование эффектов | Повторение бизнес-действий по ошибке | Коррекция атомарности |
| Разрывы между источником и приложением | Отсутствие или расхождение состояний | Согласование с подтверждением закрытия |
Распространенные ошибки
- Анализ перед проверкой подписанного тела
- Подтверждение перед надежным получением
- Предположение о упорядоченной доставке
- Проверка дубликатов только последовательно
Часто задаваемые вопросы
Означает ли успех HTTP завершение обработки?
Это зависит от контракта. При асинхронной обработке это должно означать надежное получение, в то время как состояние бизнеса отслеживается отдельно.
Можно ли предположить доставку ровно один раз?
Проектирование с учетом повторов и сбоев в рамках реального контракта, с уникальными последствиями и согласованием.
Следует ли сохранять весь текст?
Только при необходимости, с соответствующим доступом и хранением. Минимальные следы должны поддерживать диагностику и восстановление без сохранения секретов.
Официальные ссылки
Ссылки подтверждают метод. Адаптируйте проверки к вашему контексту; они не являются сертификацией. Оригинальные названия ссылок и исходные документы могут быть на другом языке.
Источники проверены .






