Artem Gryn
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
Architecture diagram:
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