Integrations · Kafka · Azure AD · event-driven exchange
Event-driven Bitrix24 integration via Kafka
Client:
NDA
Category: Integrations
Stack: Node.js, Kafka (kafkajs), Bitrix24 REST, Azure AD, Telegram alerts
Timeline: 2–5 weeks
Problem
One-off HTTP calls to an external system did not scale and left no event history: a failure meant the exchange was simply lost, and outages were discovered after the fact from client complaints.
Constraints
Events had to be matched to CRM records by a business key rather than an internal ID, no events could be lost if a handler crashed, failures needed to be reported quickly, and employee access in the CRM had to stay in sync with the corporate directory.
What I did
- An HTTP receiver publishing events into a Kafka topic
- A Kafka consumer that finds or creates a deal in the CRM by business key
- Custom fields for collateral and borrower data right on the deal card
- Syncing employee accounts with Azure AD
- Telegram alerts with a link to the deal card on event-processing errors
- Evolving the event schema without stopping the exchange
Architecture
External system
→ HTTP → Kafka producer
→ Kafka topic
→ Consumer
→ Bitrix24 REST
→ Azure AD
→ Telegram alerts with deep link
Result
The exchange became event-driven and recoverable: a handler failure no longer loses the event or stays silent — there is retry and an alert instead of silence.
What can be reused
HTTP → Kafka producer
Consumer with business-key matching
Telegram alerting scheme for processing failures