Real-Time Contact Center System
Overview
The Contact Center Routing & Real-Time Agent Management Platform is a Spring Boot–based backend system designed to manage call routing, agent availability, real-time status updates, and performance statistics across multiple client projects. It integrates with telephony infrastructure through AMI services and uses event-driven communication to ensure scalable, reliable, and near real-time operations.
The platform acts as a centralized communication layer between agents, projects, queues, telephony servers, and reporting services.
My Role
As Lead Engineer and Architect, I was responsible for:
- Designing the overall backend architecture for routing, agent management, and statistics processing
- Building scalable Spring Boot services for multi-project contact center operations
- Implementing real-time agent status handling and command dispatching
- Designing event-driven communication using RabbitMQ
- Integrating AMI-based telephony workflows for agent and call control
- Implementing Redis-based real-time state tracking and duplicate event protection
- Creating scheduled jobs for daily agent state refresh and continuity
- Designing failover-ready project-to-server mapping for high availability
Key Features
- Centralized agent login, logout, and status management
- Real-time communication between UI, backend services, and telephony systems
- Project-based routing and agent mapping
- AMI integration for call center operations
- Event-driven architecture using RabbitMQ exchanges and queues
- Real-time statistics processing for agent, queue, status, and call events
- Redis-based caching for fast state access and event deduplication
- Daily scheduled refresh of agent and skill state keys
- Support for multiple projects and scalable onboarding
- Failover-ready architecture for handling multiple telephony servers
- Modular backend services for routing, stats, agent management, and coordination
Technologies Used
- Java 21: Backend development
- Spring Boot: Core application framework
- Spring Data JPA: Database access layer
- RabbitMQ: Event-driven communication and messaging
- Redis: Real-time state storage and event deduplication
- MySQL: Persistent data storage
- AMI / Asterisk Integration: Telephony and call center operations
- WebSocket: Real-time UI communication
- Lombok: Cleaner and faster Java development
- Scheduled Jobs: Automated daily state refresh
Outcome
The platform improved contact center operations by centralizing agent management, enabling real-time status updates, and creating a scalable event-driven backend for routing and statistics processing.
It reduced dependency on manual telephony operations, improved visibility into agent and queue activity, and provided a reliable foundation for multi-project contact center management with support for failover and future expansion.
