Logo Eric Hiroshi

dio-speech-ai

API de transcrição de áudio — arquitetura evolutiva com foco em qualidade, resiliência e escalabilidade

🚀 Sobre o projeto

O dio-speech-ai é uma API REST para transcrição de áudio com Whisper via Speaches, construída em fases evolutivas para o desafio DIO × Globant. Cada fase adiciona uma camada de maturidade: da API base até arquitetura hexagonal, mensageria assíncrona e notificações multicanal.

Roadmap

Fase 1 API base — transcrição síncrona, Docker Compose, ProblemDetail (RFC 9457) v1.0.0
Fase 2 Observabilidade + Cache — Prometheus · Logs JSON · Redis · Grafana · Zipkin v2.1–v2.7
Fase 3 Resiliência + Segurança — CircuitBreaker · Retry · JWT · Testcontainers v3.1–v3.5
Fase 4 Documentação — OpenAPI 3.1 · Swagger UI · SpringDoc v4.1.0
Fase 5 CI/CD — Jacoco · SonarCloud · GitHub Actions · Docker Hub · Release automático v5.1–v5.3
Fase 6 Bean Validation — validação de DTOs · tratamento de erros estruturado (pendente — retorna quando houver DTOs de entrada validáveis) pendente v6.x
Fase 7 Arquitetura Hexagonal — Ports & Adapters · domínio desacoplado · adapters intercambiáveis v7.1–v7.6
Fase 8 Mensageria — RabbitMQ · produtor de eventos · consumer · DLQ v8.1–v8.3
Fase 9 Notificações — e-mail · SMS · WhatsApp via consumers RabbitMQ planejado v9.1–v9.3

⚙️ Quick Start

Modo dev — infraestrutura no Docker, app local

docker compose -f docker-compose.dev.yml up -d
./gradlew bootRun --args='--spring.profiles.active=dev'

Modo prod — stack completa containerizada

./gradlew clean build && docker compose up -d

📄 Documentação interativa

Com a aplicação em execução, acesse o Swagger UI:

🧠 Stack completa

Java 25
Linguagem principal
Spring Boot 4.x
Framework web
Lombok
@RequiredArgsConstructor
Speaches (Whisper)
Motor de transcrição
Docker Compose
Dev + Prod
Prometheus v2.1
Métricas e scraping
Logs JSON v2.2
Logback + MDC + requestId
Redis v2.3
Cache SHA-256, TTL 24h
Grafana v2.6
12 painéis provisionados
Zipkin/OTel v2.7
Tracing distribuído
CircuitBreaker v3.1
Resilience4j, fallback 503
Retry v3.2
Backoff exponencial
Testcontainers v3.5
Testes de integração reais
SpringDoc OpenAPI v4.1
Swagger UI + OAS 3.1
Jacoco v5.1
Cobertura de testes
SonarCloud v5.2
Qualidade contínua
SonarQube local v5.x
Análise local (Docker dev)
GitHub Actions v5.2
CI/CD automático
Bean Validation v6.1
DTOs validados
Hexagonal v7.6.0
Ports & Adapters
RabbitMQ v8.3.0
Mensageria assíncrona
Notificações v9.x
SMS · WhatsApp · e-mail