Cloud based product for managing metadata in media

Artem Gryn

Backend Engineer
Database Engineer
Software Engineer
JavaScript
MongoDB
Spring Boot
Accedo

SaaS application, AWS based solution for big content providers that allows to manage complex metadata. Key points: scalable, microservice architecture

Products: AccedoOne, AppGrid.

Product main goal to give ability to content providers maintain and control "look-and-feel" of the end-customers applications.

Main challenges:

be able to scale fast - from 70k requests per minute to 5-7 millions per minute within 3-5 minuntes

API performance - API can return complex JSO objects that may be dynamically constructed for each customer

Simplified AWS clod diagram with main services used:

Service fully based on the cloud(AWS). Java services packed into Docker containers and deployed with ECS. Main data storage represented with MongoDB and S3.

S3

EC2

Load balancer

auto-scaling

DocumentDD/MongoDB

Elastic container service

redshift

Main AWS services used: S3, EC2, ECS, load-balancer, DocumentDB, redshift
Main AWS services used: S3, EC2, ECS, load-balancer, DocumentDB, redshift

Architecture diagram:

SaaS gives business managers a way to set required parameters to their applications and end users consuming those data via delivery API
SaaS gives business managers a way to set required parameters to their applications and end users consuming those data via delivery API

Management console: initially AngularJS and after some time migrated to ReactJS

Front-end API: SpringBoot service, S3, Spring Security - users can authenticate with their ow credentials and all API requests controlled by the individual permissions granted to each user

Microservices: domain drive designed services with Spring Boot and uses MongoDB for main data storage and for data analytics used Redshift and RabbitMQ

Delivery API: represented by the highly scaleable gateway service writen with GoLang

Additional features:

Management API - API designed for system-to-system communication with unique API key for each user and allow to control data by integrating with other systems

Analytics - app usage data collection and representing it via dynamic charts and dashboards

A/B testing - gives ability to test changes only with some group of people before beploing to all users

Partner With Artem
View Services

More Projects by Artem