Skip to content

Releases

Release v1.1.0 — Cloud-Native PostgreSQL 15, L1/L2 Cache & Kubernetes HPA

Choose a tag to compare

@evslopes evslopes released this 09 Nov 00:08

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

Choose a tag to compare

@evslopes evslopes released this 21 Jan 12:06

🎉 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

🚀 Como Usar

git clone https://github.com/evslopes/sinatra-mini.git
cd sinatra-mini/sinatra-mini
mvn clean install
mvn spring-boot:run

Endpoints disponíveis:

  • GET /pedidos/{lojaId}/reports/daily-sales.csv
  • GET /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