Overview
Veira é uma plataforma de streaming desenvolvida como um projeto de engenharia de software.
O objetivo do projeto é explorar, de forma prática, conceitos de backend, frontend, sistemas distribuídos, arquitetura, mensageria, cloud e DevOps.
Mais do que construir uma aplicação de streaming, o projeto funciona como um laboratório para experimentar diferentes estratégias arquiteturais e documentar suas decisões.
Architecture
A arquitetura será construída e evoluída progressivamente.
Entre os principais conceitos explorados estão:
- Domain-Driven Design
- Hexagonal Architecture
- Microservices
- CQRS
- Event-Driven Architecture
- Distributed Systems
Backend
O backend utiliza Java e Spring Boot.
Principais tecnologias:
- Java 25
- Spring Boot 4
- Spring Data JPA
- Spring Security
- PostgreSQL
Messaging
A comunicação assíncrona será explorada através de:
- Apache Kafka
- RabbitMQ
- Event-driven architecture
- Idempotency
- Retry
- Dead Letter Queue
Cloud
O projeto será preparado para execução na AWS.
Entre os serviços e conceitos explorados:
- API Gateway
- EKS
- Lambda
- S3
- CloudFront
DevOps
O projeto também será utilizado para estudar:
- Docker
- GitHub Actions
- CI/CD
- Deploy automatizado
- Observability
Engineering decisions
Uma das principais propostas do projeto é documentar não apenas o código, mas também as decisões tomadas durante sua evolução.
Cada decisão deve considerar:
- complexidade;
- custo;
- escalabilidade;
- resiliência;
- consistência;
- manutenibilidade.
Status
Em desenvolvimento.
Source code
O código-fonte do projeto está disponível no GitHub.