A high-performance, distributed CDN backend built with Spring Boot, Redis, and MinIO. Designed to handle file uploads, stream content, track metadata, and broadcast real-time events for scalable background processing.
Uses Redis Pub/Sub to decouple file uploads from post-processing tasks (like thumbnail generation or virus scanning).
Integrated with MinIO for scalable object storage (can be swapped with AWS S3 easily).
Automatically stores file metadata (size, type, upload time) in an H2 Database using JPA.
Entire stack (App + Redis + MinIO) spins up with a single docker-compose command.
Verified to handle concurrent user uploads using custom PowerShell load scripts.
Core Framework: Java 21, Spring Boot 3.4.2
Storage: MinIO (S3 Compatible Object Storage)
Database: H2 In-Memory Database (JPA/Hibernate)
Messaging/Cache: Redis
Build Tool: Maven
Containerization: Docker & Docker Compose
- Docker & Docker Compose
- Java 21 JDK (Optional, if running locally without Docker)
- Maven (Optional)
This will start the entire system (Backend, Database, Redis, MinIO) in isolated containers.
git clone https://github.com/yourusername/loom-cdn-infra.git
cd loom-cdn-infra