One of our clients who are a Worldwide leader in Contact Center, Unified Communications, and Cloud Business Solutions, helping customers, partners, and their customers – in the cloud, on-premise or a hybrid of both through their open, converged and innovative solutions and take intelligent experiences to new heights. They elevate communications to the next generation of engagement, connecting organizations to their customers, workforce, and communities with secure, intelligent experiences that matter. They are a transformative force in digital communications software, services, and devices, designed for businesses of all sizes.
Client has provided a desktop-based agent application to their customers. This application is installed in all of the agent’s desktop in customer’s on-prem environment. All agents according to their shifts must come to office and login into existing application to make the calls to their clients. This system is not flexible enough to allow the calling agents work from remote location. Those customers dependent on such environment are stuck in the extreme situation like Covid-19, where agents are restricted to go to office and make calls. They have to eventually shutdown their operation.
- The client needs to install agent applications in all of the agent desktops manually.
- Agents cannot work from home in case of emergencies.
- The client needs to maintain, upgrade the application on each agent desktop whenever there are new features developed or released.
- It needs more effort and cost to maintain application development cycles due to different hardware at different customers.
This client has a team of service/support engineers who monitor and work on anomalies in customer deployments of their suite of products. One of the ways Client helps their customers is by providing a Desktop based Agent application which is used by agents to interact with their users to provide a seamless business experience. Right now, Client needs to install, maintain and upgrade the Desktop based Agent application to their customer’s on-premise environment.
Desktop based Agent Application
- The existing application is a desktop-based application and needs to be installed as windows executable
Cloud-Native Agent Application
The primary objective was to develop Cloud-Native Agent Application which should leverage the Client’s existing services present already on Cloud setup and should communicate with the existing messaging API framework.
Choice of Decoupling Micro-services and Messaging Framework
The proposed approach was to use Agent web UI and decoupled microservices communicating with each other using Messaging Framework. This will ease adding new components to this architecture as all services are communicating with each other over Messages. This makes the system to be language or framework agnostic and interface can be changed according to customers need.
Choice of using Web-socket in UI
There are many advantages of using WebSocket API in UI application. The major advantage is that UI do not need to do polling for getting messages but it can get messages as soon as they are available from Messaging framework. Using WebSocket in UI makes direct connection with Messaging framework so the communication is seamless.
Choice of Adapter Micro-services
Adapter microservice is the middle man between Agent UI and Connector Microservice. This microservice gets the messages sent by Connector microservice and sent those messages to topic subscribed by Agent UI and vice versa. We created this as stateless microservices so in case of crashing no data will be lost and newly created microservice does not need to worry about previous data.
The Cloud-native Agent application is envisaged to give the following benefits to the client
- Flexible architecture implemented to cater to the changing business or new requirement needs
- Agents will be able to log in and use the application from anywhere
- The decoupled architecture provides flexibility in integrating new or existing components into an application
- The client will be able to save time, efforts and cost on delivering new feature to customers
- The client can use a different interface for different customers as per their requirements
- Able to resolve and deploy fixes quickly
- Highly available application
- More business opportunities for Client