Интеграции · 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 известия с линк
Резултат
Обменът стана событиен и възстановим: отказ в обработчика вече не губи събитието и не мълчи — има повторен опит и известие вместо тишина.
Какво може да се преизползва
HTTP → Kafka producer
Consumer със съпоставяне по бизнес ключ
Схема за Telegram известия при грешки в обработката