Media Industries Digital & Linear Advertisement Software

This is one of the leading software products for the media industry and is being used by most successful media companies in the USA. It provides data driven and highly configurable architecture to manage Linear and Digital advertisements deals and inventory. This multi tenant software application is serving 100+ media companies and 5000+ users. This complete software solution has been provisioned and running on AWS cloud.

Challenges:

Need to run multi-tenant web based systems cost efficiently and with great performance for clients across USA, Canada and Europe.

Solution

This application leverages solutions from Amazon Web Services (AWS) to maximize benefits for its clients for various aspects of the software system, such as security, reliability, high availability, best performance, reduced cost.

This application consists of different containerized models as microservices based REST API and are deployed in AWS ECS cluster using AWS ECR & AWS Fargate. ECS auto scaling manages the scale-in and scale-out of different microservices based on load on the application. AWS ALB distributes traffic evenly across the tasks (microservices) in ECS service to balance the load on REST API and improves end user experience with quick API response.

AWS SQS is used to decouple microservices and process event driven applications. It helps to implement loosely coupled microservices using independent building blocks that are easier to develop, deploy and maintain.

The data layer uses AWS DynamoDB to store massive persistent data about advertisement inventory and deals for different media channels. DynamoDB provides very fast access to data caching the frequently accessed data in DynamoDB DAX which is in memory datastore.

All deferred reports are generated through REST API exposed via API Gateway and integrated with AWS Lambda. Lambda functions developed in NodeJS fetch the data from DynamoDB and generate reports and send email to respective end users through AWS SES. Reports are generated infrequently so AWS Lambda helps to save operation cost because Lambda charges are only applicable for the actual duration Lambda functions take for execution.