0001 — Micronaut em vez de Spring Boot¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-07-06 · Decidido em: 2026-04-01
Contexto¶
O processador de planilhas comerciais roda como serviço containerizado no
Coolify: recebe uploads de .xlsx, detecta o tipo, valida e persiste em
PostgreSQL. O framework de aplicação precisava ser escolhido antes de qualquer
outra decisão de stack.
Decisão¶
Usar Micronaut (à época 4.x, hoje 5.0.2 — ver 0016) em vez de Spring Boot. DI e AOP são resolvidos em build-time (sem reflexão em runtime), o que dá startup rápido e footprint de memória menor — perfil adequado a um serviço que sobe e desce em container.
Consequências¶
- Startup rápido e baixo consumo de RAM no alvo de deploy.
- DI/validação resolvidas em compilação → erros de wiring aparecem no build, não
em runtime; em troca, DTOs serializados exigem
@Serdeable(serde build-time). - Ecossistema alinhado ao irmão
bi-transporte-xls— a base compartilhada (~42 classes candidatas abi-commons) só existe porque os dois apps usam a mesma stack Micronaut.
Alternativas consideradas¶
- Spring Boot: ecossistema mais amplo, mas startup e memória maiores num alvo de container, e a reflexão em runtime não agrega aqui. Descartado.
- Quarkus: perfil parecido com o do Micronaut, mas a casa já padroniza Micronaut nos processadores BI; adotar outro framework divergiria sem ganho. Descartado.