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.
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
- Execute o fluxo principal 10 vezes.
- Abra dashboard de API e eventos.
- 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.