Проверьте событие
Проверьте предусмотренный провайдером способ аутентификации, формат и принадлежность события нужному аккаунту. Не доверяйте одному полю с идентификатором компании из тела запроса. Некорректное событие не должно изменять данные CRM.
Отделите приём от обработки
Сохраните принятое событие и передайте его в очередь. Ответ провайдеру отправляйте в соответствии с его контрактом. Для защиты от повторов используйте устойчивый ключ события, а не время получения запроса вашим сервером.
Подготовьте восстановление
Временную ошибку CRM повторяйте с задержкой и ограничением числа попыток. Неуспешные события сохраняйте для разбора. Метрики должны показывать возраст очереди и число ошибок, чтобы остановка обмена не оставалась незаметной.
Пример проверки
Провайдер прислал одно сообщение дважды после таймаута. В CRM появилась одна запись, а повтор отмечен в журнале без второго ответа клиенту.
Перед следующим шагом
- Проверяется принадлежность события
- Повтор безопасен
- Неуспешные события можно найти и повторить