Video has become central to modern learning experiences, but most platforms lack transparency, flexibility, or scalability. LearnQuest is an open-source project I’m developing to provide a fully self-hosted, scalable platform for delivering educational video content. It is built to handle high volumes of video data, process them efficiently, and stream them adaptively to learners.
From uploading raw files to streaming optimized video chunks, every step is designed for performance and control— with a backend powered by Go, Kafka, Redis, FFmpeg, and Kubernetes.
Project Highlights
- Video Upload & Background Processing:Uploaded videos are automatically processed using FFmpeg, converting them into streamable formats with multiple resolutions (e.g., 1080p, 720p). This ensures broad compatibility and adaptive playback.
- Chunked Video Streaming:Videos are segmented and delivered in small chunks to improve streaming performance, minimize buffering, and reduce bandwidth usage.
- Microservice Architecture on Kubernetes:All backend components are designed as independently scalable services, deployed using Kubernetes for load balancing, service discovery, and high availability.
- Event-Driven Infrastructure:Kafka is used to decouple and manage asynchronous tasks such as video encoding, notifications, and activity logging.
- High-Speed Caching:Redis is used to cache frequently accessed data like video metadata, thumbnails, and playback tokens, reducing load on core services.
Technology Stack
- Backend: Golang (high-performance microservices)
- Video Processing: FFmpeg (format conversion, multi-resolution encoding, thumbnail generation)
- Streaming: HTTP chunked delivery via custom media handler services
- Infrastructure: Kubernetes (scalable container orchestration)
- Messaging: Apache Kafka (for async job queues and event flow)
- Caching: Redis (for fast-access metadata and session data)
- Frontend: Next.js (for modern SSR, routing, and UI)
My Role
I’m leading architecture and core development, focusing on backend systems, video infrastructure, and deployment automation.
- Building scalable backend microservices using Go
- Integrating FFmpeg into encoding and processing pipelines
- Orchestrating containerized services with Kubernetes
- Designing asynchronous workflows using Kafka
- Developing the frontend using Next.js (in progress)
Final Thoughts
LearnQuest is designed to serve as a community-driven, scalable alternative for educational video delivery. Its modular, microservice-based backend and use of proven tools like FFmpeg, Kafka, and Kubernetes make it reliable and ready to evolve. The goal is to empower institutions and independent educators with a platform they fully control—both technically and creatively.