Aula 0: Por que planejar a escala de um sistema com antecedência?
Um projeto pessoal funciona perfeitamente. Dez usuários fazem login, escrevem, leem — tudo responde instantaneamente. Um servidor, um banco de dados, código que roda linha por linha (síncrono) — por que complicar as coisas? Agora imagine esse mesmo código, sem uma única linha alterada, diante de dez
System Design é como planejar uma rua antes que uma cidade cresça ao redor dela: é fácil corrigir uma linha no papel, mas é muito difícil demolir e reconstruir uma rua que já está cheia de carros.
- Escala
- A quantidade de usuários, requisições ou dados que o sistema precisa atender ao mesmo tempo. O mesmo código pode funcionar muito bem em pequena escala e entrar em colapso em grande escala, sem nenhuma mudança em sua lógica.
- Trade-off de escala
- Uma escolha deliberada entre duas propriedades boas quando não é possível maximizar as duas ao mesmo tempo — por exemplo, velocidade versus consistência, custo versus confiabilidade, ou simplicidade versus flexibilidade. Não existe uma única resposta certa, apenas uma escolha que se ajusta às restrições atuais.
- Entrevista de System Design
- Um formato de entrevista técnica comum em empresas sensíveis a escala, que avalia não apenas se o candidato ou a candidata escreve código correto, mas se sabe justificar trade-offs sob restrições reais — exatamente a habilidade que também protege sistemas reais do colapso.