Overview
Veira is a streaming platform developed as a hands-on software engineering project.
The goal of the project is to practically explore backend, frontend, distributed systems, architecture, messaging, cloud, and DevOps concepts.
More than just building a video streaming application, the project functions as an engineering lab to experiment with different architectural strategies and document design trade-offs.
Architecture
The architecture is built and evolved incrementally.
Key concepts explored include:
- Domain-Driven Design
- Hexagonal Architecture
- Microservices
- CQRS
- Event-Driven Architecture
- Distributed Systems
Backend
The backend is built with Java and Spring Boot.
Core technologies:
- Java 25
- Spring Boot 4
- Spring Data JPA
- Spring Security
- PostgreSQL
Messaging
Asynchronous communication is explored using:
- Apache Kafka
- RabbitMQ
- Event-driven architecture
- Idempotency
- Retry strategies
- Dead Letter Queue (DLQ)
Cloud
The project is prepared for deployment on AWS.
AWS services and concepts explored:
- API Gateway
- EKS
- Lambda
- S3
- CloudFront
DevOps
The project is also utilized to study:
- Docker
- GitHub Actions
- CI/CD
- Automated Deployment
- Observability
Source code
The project source code is available on GitHub.