Veronika
Omnichannel AI chatbot serving millions of Telkomsel customers
Context
Veronika is Telkomsel’s enterprise-grade omnichannel AI chatbot, serving millions of users across six digital touchpoints — WhatsApp, Instagram, Facebook, Telegram, a standalone web chat, and the MyTelkomsel app — automating customer queries that would otherwise queue for a human agent. It’s the most recent and largest-scale system built as a Senior Full Stack Developer at PT. Dans Multi Pro, within Telkomsel’s ecosystem.
Technical challenge
Millions of users across six heterogeneous channels means message volume and variety a plain request/response backend can’t absorb cleanly — the system needed to orchestrate messages from all six into one shared AI engine and back, sustaining thousands of chatbot sessions per hour without any single channel’s traffic spike degrading the others.
Architecture & decisions
Backend integration services and microservices run on Spring Boot, JPA, and Python, deployed on Kubernetes via AWS EKS. Kafka handles event-driven processing and service-to-service communication, Redis provides caching, and gRPC and SSE (Server-Sent Events) cover synchronous service calls and real-time web interactions respectively. Decoupling channel ingestion from AI processing through Kafka — rather than each channel integration calling the AI engine directly — isolated channel-specific traffic patterns from the shared AI backend and let channels be added without touching core orchestration logic.
Contribution
Architected the backend integration services and microservices unifying all six channels into the platform, and implemented the Kafka/Redis/gRPC/SSE layer that lets it sustain thousands of chatbot sessions per hour. Integrated AI-driven services in collaboration with the dedicated AI team, connecting AI models to backend services and automating data flows across all six channels. Also built the React and TypeScript frontend components providing consistent chatbot interactions across channels.
Result
Automated customer query handling at a scale — millions of users across six channels, thousands of concurrent sessions per hour — that would be impractical to staff with human agents alone, with consistent response orchestration regardless of which channel a customer used.
Lesson
Putting Kafka between channel ingestion and AI processing early meant channel growth — six and counting — never became an architectural problem, only a configuration one.
Impact
- Digital channels unified
- 6
- Chatbot sessions handled
- 1,000s/hour