ESTUDO DE CASO DE ENGENHARIA

API de Score de Crédito — Clean Architecture em Java 17 & Spring 3

Projeto de engenharia backend em Java 17 e Spring Boot 3.3.5 focado no desacoplamento rigoroso entre regras negociais financeiras (cálculo e classificação de faixas de Score de Crédito e gestão cadastral) e adaptadores externos de persistência, segurança e transporte HTTP.

Java 17 LTS & Tipagem Forte
Spring 3.3 Security, Validation & JPA
Clean Arch Domínio Isolado de Frameworks
Docker Ambiente Reproduzível

O Problema Arquitetural: Regras de Crédito Acopladas a ORM

Em APIs corporativas tradicionais, é comum encontrar regras de elegibilidade ou faixas de score misturadas diretamente em entidades anotadas com @Entity do Hibernate/JPA ou dentro de Controllers Spring. À medida que políticas de crédito mudam ou novas fontes de dados entram em cena, testes unitários tornam-se lentos (exigindo subir contexto Spring/banco) e efeitos colaterais multiplicam-se.

Esta implementação resolve o problema aplicando Clean Architecture estrita sobre o ecossistema JVM:

Etapa 01

Entrada HTTP

REST Controllers + Bean Validation

Etapa 02

Segurança

Spring Security Filter Chain

Etapa 03

Casos de Uso

Regras de Pessoa & Faixas de Score

Etapa 04

Domínio Puro

Entidades & Políticas sem Spring/JPA

Etapa 05

Gateways / Ports

Interfaces de Persistência

Etapa 06

Infraestrutura

Spring Data JPA + Docker Compose

Decisões Técnicas & Separação de Responsabilidades

Camada ArquiteturalResponsabilidadeBenefício Direto em Produção
Domain & UseCasesEntidades de negócio puras e motor determinístico de tradução numérica do Score (0–1000) em faixas semânticas de riscoTestabilidade unitária instantânea em Java puro, zero dependência de anotações JPA ou containers HTTP
Interface Adapters (Web)DTOs específicos de entrada/saída, mapeadores explícitos e validação declarativa (Spring Validation)Impede vazamento do modelo de banco na API pública (Mass Assignment protection) e padroniza contratos de erro
Security & PersistenceControle de acesso via Spring Security, adaptadores Spring Data JPA e banco embarcado/containerizadoPermite substituir o mecanismo de banco de dados (H2 em testes rápidos vs banco relacional produtivo via Docker Compose) sem alterar uma linha de regra de negócio
Inspecione o Código-Fonte no GitHub

Confira a estrutura de pacotes, camadas de domínio, adaptadores Spring Boot 3.3.5 e configuração Docker diretamente no repositório público.