Problema real e contexto
Serviços em linguagens diferentes exigiam padrões unificados para health checks, timeout e observabilidade.
O desafio era manter previsibilidade de comportamento sem limitar autonomia de stack.
Decisões técnicas
-
Timeout e retry com budget por operação.
-
Health checks separados para liveness e readiness.
-
Tracing distribuído e logs estruturados por request.
-
Circuit breaker para dependências com histórico de instabilidade.
Tip: Defina um contrato operacional mínimo que todo serviço precisa cumprir antes de ir para produção.
Checklist final
-
Padronizar middleware de observabilidade em todas as APIs.
-
Definir SLIs e SLOs por domínio de negócio.
-
Executar testes de falha em dependências externas.
-
Criar runbook de incidente para serviços críticos.
Erros comuns
-
Retry sem backoff causando efeito cascata.
-
Health check superficial que não detecta degradação real.
-
Logs sem correlação entre serviços.