29 de Maio de 2025
Escala e gargalos
Como pensar em escala começando pelo que quebra primeiro e pelo motivo.
Andrews Ribeiro
Founder & Engineer
4 min Intermediario Sistemas
Trilha
Trilha de system design para entrevistas
Etapa 3 / 19
O problema
Muita conversa sobre escala começa grande demais.
Antes de alguém provar onde o sistema esta doendo, a sala já falou de fila, Kafka, load balancer, CDN, sharding e microsservico. Isso pode soar sofisticado. Quase nunca ajuda a decidir o próximo passo.
Escala de verdade não começa pela lista de componentes. Começa pela pergunta mais simples e mais útil do assunto:
se esse fluxo crescer 10x, o que quebra primeiro?
Enquanto essa pergunta não estiver respondida, o resto e decoração.
Modelo mental
Sistema quase nunca quebra em todo lugar ao mesmo tempo.
Na maioria dos casos, ele sente o primeiro impacto em um recurso específico:
- CPU
- memória
- conexão com banco
- largura de banda
- I/O de disco
- dependência externa lenta
Pensar em escala, portanto, não e imaginar um sistema infinito. E identificar o primeiro limite fisico ou logico que vai apertar.
Tem uma forma simples de lembrar:
- descubra o fluxo mais importante
- descubra qual recurso esse fluxo consome
- descubra qual recurso satura primeiro
- alivie esse ponto antes de redesenhar o resto
Esse modelo evita duas armadilhas comuns:
- otimizar a parte errada
- aumentar complexidade sem necessidade
Quebrando o problema
Uma forma prática de pensar gargalo e esta:
- Escolha um fluxo crítico.
- Defina a metrica que importa nesse fluxo.
- Localize o recurso mais pressionado.
- Escolha a menor mudança que reduz a pressao.
Fluxo crítico pode ser:
- checkout
- login
- redirect
- busca
- upload
Metrica pode ser:
- latência
- throughput
- erro
- custo
Recurso pressionado pode ser:
- CPU da aplicação
- banco
- fila cheia
- API de terceiro
Repare que tudo fica mais claro quando você fala em fluxo, metrica e recurso. “Escalabilidade” deixa de ser uma palavra abstrata e vira um diagnostico concreto.
Uma heuristica boa e esta:
- se você não consegue dizer o que vai saturar primeiro, ainda não esta decidindo arquitetura; esta só nomeando tecnologia
Exemplo simples
Imagine uma API que gera PDF pesado sob demanda.
Toda vez que o usuário clica em “exportar relatório”, o servidor:
- consulta vários dados
- monta o arquivo
- renderiza o PDF
- devolve o download na mesma requisição
Se esse sistema crescer, qual e o primeiro gargalo provavel?
Não e cache de rota. Não e CDN. Não e microsservico.
O primeiro gargalo mais provavel e CPU durante a geração do PDF, somado ao tempo que cada request ocupa uma instancia.
Uma resposta madura seria:
“O ponto de dor não esta na leitura do banco. Esta no trabalho pesado dentro do caminho síncrono. Eu tiraria a geração de PDF da rota principal, colocaria o trabalho em processamento assíncrono, responderia
202 Acceptede deixaria o cliente consultar o status depois.”
Perceba o que aconteceu:
- o gargalo foi nomeado
- a mudança atacou o gargalo certo
- a arquitetura mudou só porque o fluxo exigiu
Esse e o oposto de teatro.
Erros comuns
- Começar escala pela tecnologia favorita.
- Assumir que banco sempre e o gargalo.
- Ignorar dependência externa porque ela não esta “no seu código”.
- Querer redesenhar tudo antes de localizar um ponto de saturacao.
- Medir só media e esquecer o pico.
Outro erro comum e confundir gargalo atual com gargalo final.
Talvez hoje o CPU da aplicação sature primeiro. Depois que você resolve isso, o próximo limite pode ser banco. Escala costuma ser uma sequência de gargalos, não uma unica resposta definitiva.
Também vale desconfiar de solução que melhora tudo ao mesmo tempo. Quase nunca melhora. O normal e aliviar uma pressao especifica e trocar isso por outro custo: mais fila, mais complexidade, mais observabilidade, mais consistência eventual, mais operação.
Como um senior pensa
Quem tem mais experiência costuma ser menos impressionado por arquitetura bonita e mais obcecado por sintoma real.
O raciocínio normalmente vem assim:
“Me mostra o fluxo que mais importa. Me mostra a metrica que esta apertando. Agora me mostra o recurso que sustenta esse fluxo. A partir dai eu escolho a menor intervenção que muda o resultado.”
Isso e pensamento senior porque combina duas coisas:
- diagnostico antes de mudança
- proporcionalidade na resposta
Nem todo problema de escala pede sistema distribuido. As vezes pede indice. As vezes pede cache. As vezes pede tirar um trabalho caro do request.
Essa parte e importante porque pensamento senior aqui não e “pensar grande”. E pensar proporcional.
O que o entrevistador quer ver
Em entrevista de system design, falar de escala desse jeito mostra maturidade rápido porque você sai do slogan e entra em engenharia.
Normalmente o entrevistador quer ver:
- se você localiza o fluxo crítico
- se você sabe falar de recurso, não só de componente
- se você propõe mudança proporcional
- se você entende degradação e próximo gargalo
Escalar não e adicionar caixa no diagrama. E aliviar o ponto que bloqueia o sistema primeiro.
Resumo rápido
O que vale manter na cabeça
- Escalar não começa por tecnologia famosa. Começa por descobrir qual fluxo importa e o que satura primeiro.
- Gargalo quase sempre aparece primeiro em um recurso concreto, como CPU, banco, I/O ou dependência externa.
- Resposta madura ataca o ponto de saturacao com a menor mudança que muda o resultado.
- Resolver um gargalo costuma revelar o próximo. Escala e sequência de limites, não resposta unica e definitiva.
Checklist de pratica
Use isto ao responder
- Consigo nomear um fluxo crítico e dizer qual metrica realmente importa nele?
- Sei diferenciar gargalo de CPU, banco, rede e dependência externa?
- Consigo propor a menor mudança útil antes de redesenhar o sistema inteiro?
- Sei explicar qual seria o próximo gargalo provavel depois da primeira melhoria?
Você concluiu este artigo
Parte da trilha: Trilha de system design para entrevistas (3/19)
Próximo passo
APIs e serviços com fronteiras claras Próximo passo →Compartilhar esta página
Copie o link manualmente no campo abaixo.