// cases

Problema → causa raiz → solução → métrica.

Casos reais. Detalhes técnicos preservados (NDAs respeitados nos nomes). Sem fluff de marketing.

SaaS B2B · ~12M req/dia

SaaS B2B — p99 de 4.2s para 180ms em /api/orders

p99
4.2s180ms
tickets/dia
30+0-1
custo RDS
US$ 4.8kUS$ 3.0k
// problema

Endpoint principal travando em horário comercial. Suporte recebia 30+ tickets/dia. Time de eng havia tentado adicionar índices, sem sucesso.

// causa raiz

Transação SQL longa fazendo SELECT FOR UPDATE em uma tabela orders sem índice composto adequado. Em pico, 200+ conexões ficavam bloqueadas em fila de lock. Pool do PgBouncer estourava e cascateava 502.

// solução

Reescrita da transação para usar UPDATE ... RETURNING com lock otimista. Índice composto (status, created_at, customer_id). Particionamento mensal de orders. Adição de circuit breaker no client.

Node.jsPostgreSQL 14ECS FargatePgBouncer
Telecom · processamento de CDR

Telecom — fila Redis perdendo 8% das mensagens

perda de mensagens
8%0%
MTTR de divergência
2 diasminutos
throughput
12k/min45k/min
// problema

Pipeline de CDR (Call Detail Record) descartando mensagens silenciosamente. Faturamento divergia. Nenhum alerta.

// causa raiz

Worker fazia BRPOP sem ACK transacional. Em restart durante deploy, mensagem em processamento era perdida. Sem dead-letter, sem retry, sem idempotência.

// solução

Migração para Redis Streams com consumer groups + XACK explícito. Idempotência por message_id em PostgreSQL. DLQ com replay manual. Tracing OpenTelemetry com trace_id propagado.

Node.jsRedis StreamsPostgreSQLOpenTelemetry
E-commerce · ~3M sessões/mês

E-commerce — conta AWS de US$ 28k → US$ 11k em 60 dias

custo mensal
US$ 28kUS$ 11k
cache hit CDN
38%91%
performance
estável+12% mais rápido
// problema

Custo AWS dobrou em 6 meses sem aumento proporcional de receita. CFO pediu corte. Time não sabia onde começar.

// causa raiz

ECS oversized (4x do necessário em off-peak). RDS com instância para pico permanente. S3 sem lifecycle (logs de 4 anos). NAT Gateway processando tráfego que poderia ser VPC endpoint. CloudFront mal configurado (cache hit 38%).

// solução

Right-sizing com auto-scaling agressivo. RDS com Aurora Serverless v2 nas dev/staging. Lifecycle S3 → Glacier. VPC Endpoints para S3/DynamoDB. Tuning de cache CloudFront (hit ratio 91%). Reserved Instances para baseline.

AWS ECSAuroraS3CloudFrontTerraform

Seu próximo case começa aqui.

Diagnóstico técnico