EN
title

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

PHP (Laravel Octane),
AWS (Lambda/RDS Aurora/ElasticCache/
CloudWatch/CloudFront),
CI/CD (PhpUnit/phpcpd/phpcs).

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.

presentation one

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.

presentation two

iPhone

presentation three

iPad

presentation four

Apple TV

presentation five

Android Phones
& Tablets

presentation six

Android TV

presentation seven

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