Cloud Contact Center Presence Service with Client Heartbeats
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cloud-based contact centers, implementing a presence system on the server side leads to increased server load, network latency, and complexity, limiting scalability and customization, and increases the risk of delays in routing customer requests to unavailable agents due to unreliable network connections.
Innovation Solution
A client-side presence service for a cloud-based customer interaction system that uses heartbeat messages from agent devices to monitor network connectivity in near real-time, updating a memory cache and a database to track agent availability, allowing for efficient and customizable agent presence management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a presence system is implemented on the server side, then centralized control and monitoring are achieved, but server load increases and network latency increases
Solution Approach 1:
The presence system is segmented into client-side and server-side components. The client device autonomously monitors its own presence status and sends updates to the server, while the server maintains a database of presence information. This segmentation reduces server load by distributing monitoring responsibilities to client devices while preserving centralized control through the server's database and routing decisions.
2Reliability
If a presence system is implemented on the server side, then centralized control is achieved, but device complexity increases
Solution Approach 1:
The complex presence monitoring logic is extracted from the server and placed on the client device. The client device independently determines its presence status based on network connectivity and application state, then communicates this information to the server. This extraction simplifies the server's role to maintaining a database and making routing decisions, while the client handles the complexity of real-time status detection.
3Reliability
If server-side presence monitoring is used, then centralized control is maintained, but routing delays increase due to network latency
Solution Approach 1:
The client device performs preliminary presence status detection and sends updates to the server proactively, rather than waiting for the server to query. This preliminary action ensures the server's database contains current presence information before routing decisions are made, reducing routing delays while maintaining centralized control through the server's authoritative database.
4Reliability
If server-side presence system is implemented, then centralized monitoring is achieved, but scalability is limited
Solution Approach 1:
The system is segmented so that each client device independently manages its own presence monitoring, eliminating the need for the server to continuously query or monitor each device. The server only stores and retrieves presence information from its database. This segmentation enables linear scalability as new devices are simply added to the database without increasing server monitoring overhead.
5Reliability
If server-side presence system is used, then centralized control is maintained, but customization options are reduced
Solution Approach 1:
Instead of the server imposing a uniform presence monitoring approach on all devices, the system inverts the control model by allowing each client device to autonomously determine its presence status according to its own capabilities and network conditions. The server accepts and stores these self-determined statuses, enabling customization while maintaining centralized data management and routing control.
Data Source
AI summary
Described herein is a presence service for a cloud-based contact center platform that is designed to facilitate communications between customers and agents over a variety of communication channels. The presence service is designed with a two-layer architecture. A first layer uses a highly scalable, low latency memory cache to store a high volume of message-related data for tracking the temporal connectivity status of agents. When a connection status change is detected for an agent, the first layer publishes an event message to a queue of a distributed streaming message service. The second layer receives and processes the message to update the online/offline status of the agent in a system of record.


