Skip to content

Develop - #13

Merged
lmoraesdev merged 16 commits into
mainfrom
develop
Jul 23, 2026
Merged

Develop#13
lmoraesdev merged 16 commits into
mainfrom
develop

Conversation

@lmoraesdev

Copy link
Copy Markdown
Owner

Summary

Promove pra main o conteúdo já mergeado em develop via #12 — ciclo de vida completo da cobrança, idempotência, webhooks e confiabilidade/observabilidade do outbox.

Domínio e API

  • Charge.transitionTo() com máquina de estados explícita (ACTIVE → PAID/EXPIRED/CANCELLED) + expiresAt persistido de verdade
  • GET /charges/{id} com ChargeNotFoundException → 404
  • Idempotência em POST /charges via header Idempotency-Key
  • POST /webhooks/provider — processamento idempotente de notificações do provedor Pix
  • Job agendado (ChargeExpirationJob) expira cobranças vencidas automaticamente

Confiabilidade do outbox

  • OutboxRelay migrado pra SELECT ... FOR UPDATE SKIP LOCKED (segurança multi-instância)
  • Logging do outbox migrado pra Logger5w1hBuilder
  • Propagação do correlationId do request original pro log de falha de publish

Observabilidade

  • Métricas Micrometer customizadas (charges_created_total, webhooks_processed_total, outbox_events_*)
  • Fix no Logger5w1h (mensagem real no log, antes gravava null)
  • Ruído de SQL/DDL/framework suprimido nos testes

Persistência

  • Migração de ddl-auto: update pra Flyway (schema versionado, ddl-auto: validate)

Arquitetura

  • ArchUnit trava a pureza do domínio hexagonal

Test plan

  • ./mvnw clean verify com Docker real: 40 testes unitários + 16 de integração, tudo verde
  • Flyway aplica as 3 migrations e Hibernate valida contra elas
  • spotless:check / checkstyle:check sem violações

@lmoraesdev
lmoraesdev merged commit b6da011 into main Jul 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant