v1.0 · Owner: Ueslei C. Nascimento · Revisão trimestral · Junho 2026


Todos os exemplos

Exemplo Preenchido: High-Level Design (HLD)

Projeto fictício para servir de referência de preenchimento do template-hld.md. Os números são ilustrativos. Mesmo projeto de referência dos demais exemplos (SAP-Peças).

Identificação

CampoValor
ProjetoPortal de Autoatendimento de Solicitação de Peças (SAP-Peças)
Arquiteto / Tech LeadPaula Andrade (Arquiteta)
Aprovador (Tech Lead Aprovador)Carlos Menezes
Versão / Data1.0 / 17/06/2026
BRD de origemexemplo-brd-preenchido.md

1. Visão Geral da Arquitetura

Monolito modular (módulos: Catálogo, Pedidos, Integração-ERP) atrás de um frontend SPA. Justificativa: time de 1 squad, domínio coeso e tráfego previsível não justificam microsserviços; módulos com fronteiras explícitas preservam a opção de extração futura. O cache de disponibilidade (decisão derivada do spike; ver ADR-002) é o único componente de infraestrutura adicional.

2. Diagrama de Contexto (C4 L1)

Concessionário (operador) → SAP-Peças → ERP de Pedidos (consulta de estoque + criação de pedido) e Diretório corporativo (SSO/OIDC).

[link do diagrama no Confluence: C4 L1 · SAP-Peças]

3. Diagrama de Contêineres (C4 L2)

SPA (React) → API (NestJS, monolito modular) → PostgreSQL (RDS), Redis (ElastiCache, cache de catálogo/disponibilidade) → ERP (REST) / IdP corporativo (OIDC).

[link do diagrama no Confluence: C4 L2 · SAP-Peças]

4. Stack Tecnológica

CamadaTecnologiaJustificativa
FrontendReact 19 + TypeScriptPadrão da organização; componentes do design system corporativo
BackendNestJS (Node 22)Experiência do time; estrutura modular nativa alinhada ao estilo arquitetural
Banco de dadosPostgreSQL 16 (AWS RDS)Ver ADR-001
CacheRedis 7 (AWS ElastiCache)Ver ADR-002 (mitigação do limite de carga do ERP)
Nuvem / ServiçosAWS (ECS Fargate, RDS, ElastiCache, CloudFront, SES)Contrato corporativo vigente; Fargate elimina gestão de instâncias

5. Análise Build vs Buy vs Open Source

ComponenteOpções avaliadasDecisãoCritério decisivoADR
AutenticaçãoBuild / Keycloak / IdP corporativo existenteIdP corporativo (OIDC)TCO zero incremental; concessionários já têm conta no diretórioADR-003
Busca de catálogoPostgreSQL full-text / Elasticsearch / SaaS de buscaPostgreSQL full-text5k itens não justificam cluster dedicado; evita lock-in e custo recorrenteADR-004
Notificação de statusBuild (SMTP) / AWS SES / SaaS de e-mailAWS SESVolume baixo (~200 e-mails/dia); custo marginal; já homologado na organizaçãoADR-005

6. Topologia de Infraestrutura

VPC dedicada com 2 AZs (sa-east-1): subnets públicas (ALB) e privadas (ECS Fargate, RDS, ElastiCache). CloudFront na frente da SPA. Saída para o ERP via VPN site-to-site existente. Sem exposição direta do banco ou do Redis.

7. Fluxo de Dados Principal

Busca: SPA → API → cache Redis (hit ~95%) → fallback PostgreSQL (catálogo replicado do ERP via carga noturna). Disponibilidade: cache com TTL 5 min; na confirmação do pedido, consulta direta ao ERP (validação final). Pedido: API → fila interna (tabela outbox) → integração ERP com retry; status retorna por polling a cada 10 min.

8. Estratégia de Segurança

Autenticação via OIDC no IdP corporativo (sem senha local). Autorização por papel (operador / gestor do concessionário) com escopo por CNPJ do concessionário. TLS em todas as conexões; dados em repouso criptografados (RDS/ElastiCache nativos). Threat modeling STRIDE realizado nos fluxos de login, busca e envio de pedido. Principal ameaça identificada: tampering de escopo de concessionário (operador acessar pedidos de outro CNPJ); controle: claim de CNPJ no token + filtro obrigatório na camada de dados.

9. Estratégia de Escalabilidade

Horizontal no ECS (2-8 tasks, gatilho: CPU > 60% ou P95 > 600ms). RDS com read replica opcional (decisão adiada; gatilho documentado: consultas > 70% da capacidade). Redis dimensionado para o catálogo completo em memória.

10. Estratégia de Deploy (preliminar)

Rolling no ECS (substituição gradual de tasks com health check). Blue/green descartado nesta fase: monolito sem migração de tráfego complexa; rollback é o redeploy da imagem anterior.

11. Estratégia de Observabilidade (preliminar)

SLI candidatoSLO alvo
Latência de busca (P95)< 800ms (RNF-001)
Disponibilidade da API (6h-22h)≥ 99,5% (RNF-002)
Tempo pedido-portal → pedido-ERP< 1 min (CA-002)
Taxa de erro na integração ERP< 0,5% com retry automático

12. Requisitos de DR

ParâmetroValor
RTO4h
RPO1h
Estratégia macroMulti-AZ no RDS; backup automatizado (PITR); infraestrutura recriável via IaC (Terraform); cache é reconstruível (não exige DR)

13. Riscos Técnicos

IDDescriçãoProb.ImpactoMitigação
RISK-003Janela de carga noturna do catálogo falhar e servir dados defasadosMédiaMédioAlerta de staleness (> 26h); fallback de consulta direta com degradação anunciada
RISK-004VPN site-to-site com o ERP indisponívelBaixaAltoFila outbox segura pedidos até 24h; runbook de reprocessamento

14. Pontos de Decisão Técnica (ADR)

ADRDecisãoStatus
ADR-001PostgreSQL 16 (RDS) como banco principalAceita
ADR-002Cache Redis para catálogo e disponibilidade (mitigação do limite do ERP)Aceita
ADR-003Autenticação via IdP corporativo (OIDC), sem identidade localAceita
ADR-004Busca com PostgreSQL full-text (sem Elasticsearch)Aceita
ADR-005Notificações por AWS SESAceita

15. Reestimativa (pós-HLD)

ItemEstimativa atualizadaVariação vs. BRD
Construção (infra + desenvolvimento)~3,2 squads-mês + R$ 20k de infra de projeto+8%
Custo recorrente anual (TCO de operação)~R$ 78k/ano (inclui ElastiCache)+8%

Ver no GitHub