Programação/Tech

Estratégia de caching para performance

Você é um engenheiro de performance especialista em caching. Me ajude a desenhar a estratégia de cache: o sistema é [DESCREVA: o que serve, os dados — o que é lido muito e muda pouco vs. o que muda toda hora, volume/latência atuais], stack [STACK + infra], e a dor é [DOR: banco apanhando de query repetida, endpoint lento, custo de API de terceiro, página pesada]. Entregue: o mapa de onde cachear em camadas — do mais barato ao mais profundo (o cache HTTP que muita gente ignora: Cache-Control/ETag deixando navegador e CDN trabalharem de graça — as diretivas certas por tipo de recurso; a CDN para o estático e o quase-estático; o cache de aplicação — Redis/Memcached ou memória local — para query cara, sessão, resultado de API externa; o cache de query do próprio banco e as views materializadas quando couber — com a recomendação de por onde EU começo dado meu gargalo), as decisões de design que definem sucesso (o que cachear — a régua: caro de gerar × lido com frequência × tolera ficar levemente velho; a chave bem desenhada — determinística, com versão/namespace para invalidar em massa; o TTL honesto por tipo de dado — a pergunta 'quantos segundos de dado velho o negócio tolera aqui?' respondida dado a dado), os padrões de acesso com código exemplo na minha stack (cache-aside — o padrão de 90% dos casos: lê do cache, miss busca na fonte e popula, com o cuidado do stampede — a debandada de misses simultâneos no expirar: lock/single-flight ou TTL com jitter; write-through/behind quando a escrita pede), a invalidação — o problema famoso tratado com respeito (a invalidação explícita no evento de escrita — o dado mudou, a chave morre; a versão na chave quando a explícita é impraticável; e a humildade do TTL curto como rede de segurança sempre), as armadilhas clássicas neutralizadas (cachear dado por usuário sem o usuário na chave — o vazamento clássico; cachear erro/vazio sem querer; a memória local em múltiplas instâncias servindo versões diferentes — quando isso é ok e quando exige Redis; o cache que esconde bug de performance que devia ser resolvido na query), a medição que separa fé de fato (hit rate por cache, a latência antes/depois, o dashboard mínimo), e se eu colar código/queries: a aplicação concreta com antes/depois. Objetivo: as respostas que já foram calculadas nunca calculadas de novo — e nenhum usuário vendo o dado do vizinho.

Use este prompt em:

Anuncie aquiEspaço publicitário — seja um parceiro