Заметки
Как обрабатывать вебхуки и восстанавливать пропущенные изменения
Надёжная обработка начинается с сохранения полученного события в устойчивую очередь. Только после этого обработчик подтверждает приём; тяжёлая работа выполняется отдельно.
Если сначала ответить успехом, а затем начать запись, сбой между этими действиями потеряет событие. Если долго обрабатывать всё внутри HTTP-запроса, растёт риск таймаута и неопределённого результата.
Очередь должна хранить состояние, число попыток и последнюю ошибку. Повторы выполняют с задержкой, а постоянные ошибки выводят в отдельный список для разбора. Действие должно выдерживать повторную обработку — подробнее о дедупликации.
Очередь защищает уже полученное событие, но не восстанавливает то, которое вообще не доставили. Поэтому для важных данных нужна периодическая сверка с порталом и чтение изменений с перекрытием интервала. Удаления и промежуточные версии требуют отдельной стратегии.
Гарантии повторной доставки уточняют для конкретного механизма Bitrix24. Свою устойчивость не стоит строить на предположении о бесконечном retry.