Интеграции · Kafka · Azure AD · событийный обмен
Событийная интеграция Bitrix24 через Kafka
Клиент:
NDA
Категория: Интеграции
Стек: Node.js, Kafka (kafkajs), Bitrix24 REST, Azure AD, Telegram-алерты
Срок: 2–5 недель
Проблема
Точечные HTTP-вызовы к внешней системе не масштабировались и не оставляли истории событий: при сбое обмен просто терялся, а на сбои узнавали постфактум от клиентов.
Ограничения
Нужно было матчить события с сущностями CRM по бизнес-ключу (а не по внутреннему ID), не терять события при падении обработчика, оповещать о сбоях быстро и держать доступы сотрудников в CRM синхронными с корпоративным каталогом.
Что сделал
- HTTP-приёмник, публикующий события в Kafka-топик
- Kafka-консьюмер, находящий или создающий сделку в CRM по бизнес-ключу
- Кастомные поля для данных о залоге и заёмщике прямо на карточке сделки
- Синхронизация учётных записей сотрудников с Azure AD
- Telegram-алерты со ссылкой на карточку сделки при ошибках обработки события
- Эволюция схемы события без остановки обмена
Архитектура
External system
→ HTTP → Kafka producer
→ Kafka topic
→ Consumer
→ Bitrix24 REST
→ Azure AD
→ Telegram-алерты с deep link
Результат
Обмен стал событийным и переживаемым: сбой в обработчике не теряет событие и не молчит — есть retry и алерт, а не тишина.
Что можно переиспользовать
Producer HTTP → Kafka
Consumer с матчингом по бизнес-ключу
Схема алертинга в Telegram при сбоях обработки