Decisões de arquitetura (ADRs)
Um ADR (Architecture Decision Record) registra, de forma curta e imutável, uma decisão técnica relevante: o contexto, a decisão e as consequências.
- ADRs são imutáveis após aceitos. Para mudar, crie um novo ADR que supersede o anterior.
- Numeração sequencial:
NNNN-titulo.md.
Índice
| ADR | Título | Status |
|---|---|---|
| 0001 | Stack tecnológica e fronteira Java/Python | Aceito |
| 0002 | Fonte oficial: CSV da Caixa (não scraping) | Aceito |
| 0003 | Dois repositórios (app + GitOps) | Aceito |
| 0004 | Documentação em Markdown puro (sem framework) | Aceito |
| 0005 | Mensageria com RabbitMQ (processamento assíncrono) | Aceito |
| 0006 | Infra de produção: k3s/VPS Hostinger, Traefik, Cloudflare, VPN | Aceito |
| 0007 | Cache de leitura com Redis (cache-aside) | Aceito |
| 0008 | Traefik gerenciado por nós (k3s sem Traefik embutido) | Aceito |
| 0009 | Portainer como ferramenta de gerenciamento do cluster | Aceito |
| 0010 | Enriquecimento por página de detalhe (Caixa) | Aceito |
| 0011 | Portal de documentação gerado (VitePress) | Parcial (paliativo) |
| 0012 | Retenção: histórico curado + coleta bruta comprimida | Aceito |
| 0013 | Autenticação social (Google/GitHub) com OIDC e BFF | Aceito |
| 0014 | Análise jurídica de investimento assistida por IA | Aceito (Fase 9) |
| 0015 | Kustomize para serviços próprios, Helm para terceiros | Aceito |
| 0016 | Geocoding (Nominatim self-hosted + cache/fallback) | Aceito |
| 0017 | Object storage para mídias (MinIO/S3 + CDN) | Aceito |
| 0018 | Notificações event-driven (e-mail no MVP) | Aceito |
| 0019 | Rate limiting, quotas e WAF (camadas) | Aceito |
Template
markdown
# ADR-NNNN — Título
- **Status:** Proposto | Aceito | Substituído por ADR-XXXX
- **Data:** AAAA-MM-DD
## Contexto
Qual é o problema/força que motiva a decisão?
## Decisão
O que foi decidido (de forma clara e afirmativa).
## Consequências
Positivas, negativas e trade-offs. O que passa a ser verdade depois desta decisão.
## Alternativas consideradas
Opções avaliadas e por que não foram escolhidas.