Repository navigation
Releases
Releases · evslopes/sinatra-mini
Release v1.1.0 — Cloud-Native PostgreSQL 15, L1/L2 Cache & Kubernetes HPA
Evolução para Produção Cloud-Native (v1.1.0)
Evolução arquitetural da API SaaS Sinatra Mini, consolidando persistência em PostgreSQL 15, versionamento Flyway (V1–V11), cache híbrido Caffeine (L1) + Redis (L2), suíte Testcontainers e manifestos Kubernetes com HPA (3–10 pods).
Destaques de Engenharia
- Streaming Analítico O(1) Memória: Exportação CSV incremental via StreamingResponseBody + Stream (etchSize=500).
- Algoritmos O(N) & Isolamento Timezone: Varredura linear única em MaiorIntervaloSemVendasService e conversões ZoneId na camada Service.
- PostgreSQL 15 & Flyway (V1–V11): 11 migrações versionadas, índices compostos (loja_id, data_pedido) e triggers de sincronização.
- Cache Multi-Nível: CompositeCacheManager combinando L1 Caffeine (< 0,1 ms) e L2 Redis distribuído.
- Testcontainers + Fallback Resiliente: 54 testes automatizados (integração, performance/carga, validação e unidade).
- Containerização & K8s: Dockerfile multi-stage (eclipse-temurin:17-jre-alpine, non-root, dumb-init, G1GC), HPA (3–10 réplicas) e CronJob de backup RPO/RTO.
Release v1.0.0 - Sinatra Mini SaaS
🎉 Lançamento Inicial - Sinatra Mini SaaS
Sistema SaaS simplificado para gestão de vendas de múltiplas lojas, com foco em desempenho, escalabilidade e eficiência de memória.
✨ Features Principais
📊 APIs Analíticas
- Exportação CSV de Vendas Diárias - Streaming para suportar 100k+ registros
- Maior Intervalo Sem Vendas - Algoritmo O(N) linear
- Dia com Menor Venda - Com suporte a timezones
- Média Semanal - Agrupada por dia da semana (Seg-Dom)
⚡ Otimizações de Performance
- Índices compostos
(loja_id, data_pedido) - Projeções JPA (70% menos dados trafegados)
- Streaming com
@QueryHints(fetchSize=500) - Algoritmos lineares O(N) vs quadráticos O(N²)
🧪 Qualidade e Testes
- 53 testes (9 unit + 27 integration + 16 validation + 1 performance)
- 98.11% de aprovação (52/53 passando)
- 70-75% cobertura de código
- Status QA: ✅ APROVADO PARA PRODUÇÃO
🏗️ Stack Tecnológica
- Java 17 (LTS)
- Spring Boot 3.2.12
- H2 Database (in-memory)
- Maven
- JPA/Hibernate
📚 Documentação Completa
- CHANGELOG.md - Histórico detalhado de mudanças
- README.md - Guia de uso e APIs
- QA Test Report - Relatório de testes
- Stories: 1.1, 2.1, 2.2, 2.3, 2.4
🚀 Como Usar
git clone https://github.com/evslopes/sinatra-mini.git
cd sinatra-mini/sinatra-mini
mvn clean install
mvn spring-boot:runEndpoints disponíveis:
GET /pedidos/{lojaId}/reports/daily-sales.csvGET /pedidos/{lojaId}/reports/longest-no-sales?start={date}&end={date}GET /pedidos/{lojaId}/reports/min-day-sales?start={date}&end={date}&zoneId={timezone}GET /pedidos/{lojaId}/reports/weekly-average?start={date}&end={date}&zoneId={timezone}
Console H2: http://localhost:8080/h2-console
Desenvolvido por: Elvis Herllain
Versão: 1.0.0
Data: 20/01/2026