Componente
Cache em System Design
Cache é uma camada de armazenamento rápido que guarda respostas já calculadas para evitar recalcular ou reconsultar o banco de dados a cada leitura repetida — trocando um pouco de consistência por latência muito menor.
Por que usar cache
Bancos de dados são normalmente o recurso mais caro e mais lento de uma arquitetura. Se um mesmo dado é lido centenas de vezes para cada vez que muda, cachear esse dado evita repetir o trabalho — reduz latência para quem lê e reduz a carga que chega ao banco.
Cache-aside
O padrão mais comum: a aplicação verifica o cache primeiro. Se o dado está lá (hit), retorna direto. Se não está (miss), busca no banco, guarda no cache e retorna. É simples e só cacheia o que realmente é lido.
TTL e invalidação
Todo dado em cache precisa expirar (TTL — time to live) ou ser invalidado explicitamente quando o dado original muda. Invalidação mal feita é a fonte mais comum de bugs relacionados a cache: dado desatualizado sendo servido como se fosse atual.
Quando não usar cache
- Quando a carga é majoritariamente de escrita — cache não acelera escrita.
- Quando o dado muda com muita frequência — a taxa de acerto (hit ratio) cai e o cache vira só uma camada extra de latência.
- Quando a aplicação não tolera nenhuma janela de inconsistência.
Como o simulador modela cache
No Simulador de System Design, o componente de cache segue o mesmo comportamento descrito acima, com parâmetros que você pode ajustar:
| Parâmetro | Padrão | Efeito |
|---|---|---|
| Hit ratio | 80% | Percentual de leituras respondidas pelo cache; o restante segue para o banco. |
| Capacidade por réplica | 50.000 req/s | Limite de requisições por réplica antes de degradar. |
| Réplicas | 1 a 20 | Escala horizontal do cache sob carga. |
Como no mundo real, o cache no simulador só absorve leituras — o tráfego de escrita sempre segue até o banco de dados, mesmo com cache no caminho.
Monte uma API com e sem cache na frente do banco, gere a mesma carga nos dois cenários e compare latência e taxa de erro lado a lado.
Abrir o simulador