A microservices-based video streaming platform designed to provide scalable, modular, and reliable video content management and streaming.
The Video Streaming Platform is built using a microservices architecture, where each major functionality is developed and deployed as an independent service.
The project demonstrates:
๐น Microservices Architecture ๐น Service Discovery ๐น API Gateway ๐น Centralized Configuration ๐น RESTful APIs ๐น Inter-Service Communication ๐น Video Catalog Management ๐น Video Streaming ๐น Fault Tolerance ๐น Containerized Deployment
๐น Add video/movie information ๐น Retrieve movie details ๐น Browse available movies ๐น Search movies ๐น Manage movie metadata
๐น Stream video content ๐น Handle video streaming requests ๐น Support large video files ๐น Efficient content delivery
๐น Single entry point for clients ๐น Request routing ๐น Service abstraction ๐น Centralized API access
๐น Dynamic service registration ๐น Service lookup ๐น Load-balanced communication between services
๐น Externalized application configuration ๐น Environment-specific configurations ๐น Centralized configuration management
| Service | Responsibility |
|---|---|
api-gateway |
Routes client requests to appropriate services |
service-registry |
Registers and discovers microservices |
config-server |
Provides centralized configuration |
movie-catalog-service |
Manages movie/video metadata |
video-streaming-service |
Handles video streaming |
database |
Stores application data |
๐น โ Java ๐น ๐ฑ Spring Boot ๐น โ๏ธ Spring Cloud ๐น ๐ REST APIs ๐น ๐ก Microservices
๐น ๐ Service Discovery ๐น ๐ช API Gateway ๐น โ๏ธ Config Server ๐น ๐ณ Docker ๐น ๐ CI/CD
๐น ๐๏ธ PostgreSQL / MySQL
๐น ๐ Git ๐น ๐ฎ Postman ๐น ๐งฐ Maven ๐น ๐ป IntelliJ IDEA / Eclipse
video-streaming-platform/
โ
โโโ api-gateway/
โ
โโโ service-discovery/
โ
โโโ config-server/
โ
โโโ movie-catalog-service/
โ
โโโ video-streaming-service/
โ
โโโ Config/
โ
โโโ README.md
Client
โ
โผ
API Gateway
โ
โผ
Service Discovery
โ
โโโโโโโโโโโโโโโโบ Movie Catalog Service
โ
โโโโโโโโโโโโโโโโบ Video Streaming Service
โ
โผ
Storage
| Method | Endpoint | Description |
|---|---|---|
POST |
/movie-info/save |
Saves all movies from Store |
GET |
/movie-info/lists |
Get all movies information |
GET |
/movie-info/find-by-id/{movieIndoId} |
Get movie path by ID |
| Method | Endpoint | Description |
|---|---|---|
GET |
/movie-stream/{videoPath} |
Stream video |
GET |
movie-stream/with-id/{movieInfoId} |
Gets movie path from catelog service |
Configuration is managed using the centralized configuration service.
Example:
server:
port: 8080
spring:
application:
name: movie-catalog-serviceMake sure the following are installed:
๐น Java 21+ ๐น Maven ๐น Git ๐น Docker (optional) ๐น PostgreSQL / MySQL
git clone https://github.com/Vansh-829/Video-Streaming-App.git
cd video-streaming-platformmvn clean installStart the services in the following order:
1. Config Server
2. Service Discovery
3. API Gateway
4. Movie Catalog Service
5. Movie Streaming Service
The platform can be extended with:
๐น Spring Boot Actuator ๐น Application logging ๐น Distributed tracing ๐น Metrics ๐น Centralized log management
Potential security features include:
๐น Authentication ๐น Authorization ๐น JWT-based security ๐น API endpoint protection ๐น Secure service-to-service communication
- User authentication
- User profiles
- Watch history
- Recommendations
- Video upload
- Video transcoding
- Redis caching
- Kafka-based event processing
- Rate limiting
- Distributed tracing
- Kubernetes deployment
- CI/CD pipeline
๐น Home Page
๐น Video Player
๐น Eureka Service
This project demonstrates practical implementation of:
๐น Microservices architecture ๐น Spring Boot ๐น Spring Cloud ๐น API Gateway ๐น Service Discovery ๐น Centralized Configuration ๐น REST API development ๐น Database integration ๐น Inter-service communication ๐น Containerization ๐น Scalable backend design
Vansh Gala
๐น ๐ผ LinkedIn ๐น ๐ GitHub ๐น ๐ง Email
If you find this project useful, consider giving it a โญ on GitHub.
