Aula 0: Por que planear a escala de um sistema com antecedência?
Um projeto pessoal funciona perfeitamente. Dez utilizadores fazem login, escrevem, leem — tudo responde instantaneamente. Um servidor, um base 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
System Design é como planear 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 utilizadores, 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 fiabilidade, 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.