Projeto Final: Fluxo Completo

Demo: métricas, traces, cache e DLQ

Tutorial de apresentação técnica com evidências reais de operação distribuída.

Avançado 45 min 40 pontos Leitura 0%

Nesta aula você vai

  • Demonstrar métricas e traces no fluxo principal
  • Comparar latência com e sem cache
  • Forçar falha e provar encaminhamento para DLQ

Demo: métricas, traces, cache e DLQ

Nesta aula você vai montar uma demo técnica completa de operação do sistema, não apenas de endpoints.

Passo 1 - Métricas no Grafana

  1. Execute o fluxo principal 10 vezes.
  2. Abra dashboard de API e eventos.
  3. Mostre:
    • taxa de requisição
    • latência p95
    • taxa de erro

Comandos úteis:

for i in {1..10}; do
  curl -s -X POST http://localhost:8080/customers -H "Content-Type: application/json" -d '{"name":"Demo","email":"demo'$i'@acme.com"}' >/dev/null
done

Passo 2 - Trace ponta a ponta no Jaeger

Mostre um trace incluindo:

  • customer-service -> order-service -> payment-service -> notification-service -> analytics-service

Valide presença de traceId em logs:

docker compose logs | rg "trace_id|traceId"

Passo 3 - Cache hit vs miss

Execute duas leituras do mesmo cliente:

curl -s http://localhost:8080/customers/cus-1
curl -s http://localhost:8080/customers/cus-1

Na segunda chamada, evidencie:

  • queda de latência;
  • log de cache_hit=true.

Passo 4 - Forçar DLQ

Simule falha no processamento do pagamento:

docker compose exec payment-service sh -c "export FORCE_PAYMENT_FAILURE=true"
curl -s -X POST http://localhost:8081/orders -H "Content-Type: application/json" -d '{"customerId":"cus-1","items":[{"sku":"book","qty":1}]}'

Verifique mensagem em DLQ:

docker compose logs payment-service | rg "dlq|moved to dead letter"

Resultado esperado da demo

  • Evidência visual de métricas.
  • Um trace completo de negócio.
  • Comparação clara de latência cache miss/hit.
  • Evento real indo para DLQ após retries.

Resumo

Você preparou uma demo operacional completa com métricas, tracing, cache e DLQ, mostrando maturidade técnica do projeto final.