Caching e CDN
Nesta lição, vamos aprender sobre cache (um lugar rápido onde guardamos respostas que já calculamos, para não refazer o trabalho; como um bilhete na sua mesa com uma resposta que você já encontrou). Vamos conhecer alguns estilos de trabalho: cache-aside (lê do cache, e se estiver vazio vai até a fon
System Design (planejar como construir um software grande que atende muitas pessoas) é como planejar uma cidade: estradas, armazéns, semáforos e equipes de manutenção, para que a cidade continue funcionando bem mesmo no horário de pico mais intenso.
- Caching
- Guardar respostas prontas em um lugar rápido (um cache) para responder rapidamente e evitar fazer o mesmo trabalho duas vezes. A habilidade central desta lição cobre cache-aside (lê do cache, e se estiver vazio vai até a fonte e salva), write-through (salva tanto no cache quanto na fonte juntos), TTL (quanto tempo uma resposta permanece "fresca"), invalidation (descartar dados desatualizados), hot keys (itens que todo mundo pede ao mesmo tempo), e um CDN (servidores espalhados pelo mundo que mantêm cópias perto do usuário).
- Trade-off
- Uma escolha consciente que tem tanto um ganho quanto um custo — assim como escolher uma rota: a estrada rápida cobra pedágio, a gratuita demora mais. Em uma entrevista, você explica ao entrevistador ou à entrevistadora o ganho e o custo de cada escolha.
- Métrica operacional
- Um número que mostra se a decisão realmente funciona quando o sistema está no ar e atendendo usuários reais (produção). Por exemplo: latência (quanto tempo uma resposta demora), taxa de erro (a proporção de requisições que falham), atraso de fila (quantas tarefas estão esperando na fila), e taxa de acerto do cache (quantas vezes encontramos uma resposta já pronta). Como os mostradores do painel de um carro — eles indicam se está tudo bem.