Multi Tenant Call Transcoding and Analytics System
Requirement
1. Multiple tenants (organizations) will use this system to analyze the call that they get in their contact center.
2. They can define various business rules and configuration to manage categorize and later analyze the calls.
3. There should be certain metadata that needed to be fetched from the call via some transcoding and stored so that it can be used for analytics and process improvement.
4. As this is a multi tenant application, expected number of total calls system can receive is more than a million on daily basis.
5. Transcoding should be configurable on various factors as this is a heavy operation and organization can choose selective transcoding to save cost.
System Design
Design Decisions
1. Rule Engine : To Manage the configuration defines to categorize the call data and apply the configured transcoding attributes
2. Elastic Search : Low latency search for Survey results, categorized metadata and other call attribute to display to agent for analysis.
3. Container based services : Scalability, as expected daily calls are 1m+.
4. Kafka/Kinesis : will be used to publish all the event to Elastic search to avoid data loss.
5. S3- Blob Storage will be used for storing transcription data to store all the transcriptions which later can be analyzed using Hive/Athena query base.
6. All transactional data like call attributes, categories and survey ratings will be stored in Postgres DB.
7. Multi tenancy model applied is shared-shared. But need to look on shared-dedicated or dedicated-dedicated model as well is compliance or security is primary need.