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