Guia prático de entrevista de System Design
System Design significa planejar um sistema de software grande — como todas as peças se encaixam para atender muitos usuários. Nesta aula praticamos, passo a passo, como abordar uma pergunta de entrevista sobre o tema. Vamos aprender a definir requisitos (o que o sistema precisa fazer), escopo (o qu
System Design é como planejar uma cidade inteira: ruas que carregam o tráfego, depósitos que guardam coisas, semáforos que mantêm o fluxo organizado, e equipes de manutenção que resolvem problemas — tudo para que a cidade continue funcionando bem mesmo no horário de pico, quando todo mundo está na rua ao mesmo tempo.
- Requisitos e escopo
- A habilidade central desta aula: antes de projetar um sistema, você esclarece o que ele precisa fazer (requisitos), o que está e o que não está incluído (escopo), quais premissas você está assumindo, e como estruturar uma resposta clara. É como anotar o pedido completo em um restaurante antes de começar a cozinhar.
- Trade-off
- Uma escolha consciente entre duas opções, em que cada uma tem uma vantagem mas também um preço. Não existe resposta perfeita — você escolhe o que se encaixa e explica ao entrevistador o que ganha e o que abre mão. Como escolher entre uma rota rápida e cara, e uma barata e lenta.
- Métrica operacional
- Um número que você pode medir para saber se uma decisão realmente funciona quando o sistema está no ar e atendendo usuários reais (produção). Por exemplo: latency (quanto tempo leva para uma resposta voltar), error rate (a proporção de requisições que falham), queue lag (quantas tarefas estão esperando na fila), cache hit ratio (com que frequência encontramos a resposta pronta em um armazenamento temporário rápido), e mais.