Назначьте источник истины
Например, CRM управляет контактом и этапом сделки, а учётная система — оплатой и остатком. Зафиксируйте направление обмена для каждого поля и правило конфликта при одновременном изменении. Используйте устойчивые идентификаторы: имя клиента не подходит для сопоставления. Уточните ограничения API, права токена и доступность тестовой среды у поставщика.
Проектируйте повторную доставку
Вебхук может прийти повторно или не по порядку. Обработчик должен распознать уже принятое событие и не создать вторую сделку. При временном отказе используйте контролируемые повторы и очередь, а постоянную ошибку отправляйте на разбор. Сохраняйте идентификатор события и результат обработки, но не секреты и полные персональные данные в журнале.
Проверяйте весь жизненный цикл
Протестируйте создание, изменение, отмену, удаление и восстановление связи. Проверьте истечение доступа, недоступность API, частично заполненную запись и изменение формата ответа. Дайте ответственному понятный способ увидеть отставшие события и безопасно повторить обработку. Регулярная сверка данных помогает находить ошибки, которые не обнаруживаются проверкой открытого порта.
Что проверить
- Для полей определены владельцы и направления обмена.
- Повтор события не создаёт дубль.
- Секреты не записываются в логи.
- Есть сверка и безопасная повторная обработка.
Вопросы о проекте
Достаточно ли вебхуков?
Не всегда. Вебхуки удобны для событий, но периодическая сверка нужна, если сервис допускает пропуски, задержки или недоступность получателя.