2.1. Requisitos não funcionais e desempenho
Meça latência por percentis, não por média: p99 é a experiência dos seus clientes mais valiosos.
Resumo
- Requisito não funcional: desempenho, confiabilidade, escala, manutenção. Define a arquitetura tanto quanto as funções.
- Caso timeline: fazer join na leitura ou materializar (fan-out na escrita). Celebridades pedem abordagem híbrida.
- Tempo de resposta = espera em fila + serviço + rede. Vazão = requisições ou bytes por segundo.
- Use percentis: p50 (mediana) mostra o típico; p95/p99 mostram a cauda. Média esconde outliers.
- Amplificação da cauda: uma página que chama 10 serviços sofre o pior deles. SLO/SLA se escrevem em percentis.
Perguntas-chave
responda de cabeça, depois abraPor que a média é ruim para descrever latência?
Poucos valores extremos distorcem a média, e ela não diz quantos usuários sofreram com lentidão. Percentis mostram isso diretamente.
O que é fan-out na escrita no caso da timeline?
Ao postar, o sistema grava a postagem na timeline pré-calculada de cada seguidor; a leitura fica barata, a escrita fica cara.
O que é amplificação da latência de cauda?
Quando uma requisição depende de várias chamadas em paralelo, basta uma lenta para atrasar tudo; a chance de pegar uma lenta cresce com o número de chamadas.
Exercícios de fixação
0/5 respondidas1.
O p99 de uma API é 800 ms. Isso significa que:
2.
Uma rede social tem usuários com 50 milhões de seguidores. Qual estratégia de timeline o capítulo sugere?
3.
A página inicial chama 20 serviços em paralelo, cada um rápido em 99% das vezes. Por que a página é lenta com frequência?
4.
Tempo de resposta medido pelo cliente inclui, além do processamento:
5.
Qual SLO está bem escrito, segundo o capítulo?