High-Load Stream API Service
About the Project
The Stream API service manages a high-load application that allows users to receive high-quality video content, including movies, series, and TV channels.
Technologies
Performance
One of the key requirements for the project was its performance, as it was crucial for users to receive requested data as quickly as possible. The challenge was compounded by the requirement to use PHP. To overcome issues with slow PHP performance under heavy loads, a decision was made to use PHP Swoole, which significantly increased the service's performance under heavy loads. Caching of the most critical parts of the system was also widely applied.
Code Stability
The high load of the project required minimizing the risk of deploying code with bugs. To achieve this, a decision was made to use the CI/CD approach, which, in turn, required the highest possible code coverage with tests using PHP Unit. Additionally, the CI/CD process includes code duplication checking and compliance with the PSR-12 standard. CI/CD was built using GitLab Pipeline.
iPhone
iPad
Apple TV
Android Phones
& Tablets
Android TV
Fault Tolerance
The service is used by tens of thousands of people around the world, so it was important to design an architecture that minimizes the risk of failures. After analyzing possible solutions, it was decided to build the service architecture using Amazon AWS services.
The following services were used:
- Lambda -> used for cloud computing
- RDS -> RDS cluster based on the AWS Aurora engine
- Elastic Cache -> Redis cluster used for data caching
- Cloud Watch -> log analysis service
- CloudFront -> service that allows content to be delivered closer to its users geographically
Next Project