Pular para conteúdo

0001 — Micronaut Data JDBC, sem Hibernate

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-11 · Decidido em: 2026-04-01

Contexto

O processador persiste fatos (bi_*) e metadados (xls_*) em PostgreSQL. A camada de acesso a dados precisava ser escolhida junto com o framework. A stack ficou em Java 21 + Micronaut 4 (preferido a Spring Boot pelo startup rápido e footprint menor em container).

Decisão

Usar Micronaut Data JDBC — repositórios sobre entidades @MappedEntity — sem Hibernate/JPA. O schema é versionado por Flyway (classpath:db/migration), nunca por DDL automático de ORM.

Consequências

  • Controle explícito do SQL — essencial para o UPSERT diff-aware e o bulk via COPY (ver decisão 0006 e decisão 0007).
  • Sem cache de 1º nível, lazy-loading ou flush implícito surpreendendo o fluxo.
  • Migrações revisáveis em PR; sem divergência entre o modelo Java e o banco.

Alternativas consideradas

  • Hibernate/JPA: abstrai SQL demais; o SQL implícito atrapalha o controle fino que o pipeline diff-aware exige. Descartado.
  • Spring Data / Spring Boot: startup e memória maiores num alvo de container; Micronaut atende o perfil. Descartado já na escolha do framework.