TTL de cache do avatar
TLDR: Aumenta o cache do endpoint de avatar de 1 minuto para 1 hora, reduzindo hits redundantes no Rails em um redirect praticamente estático.
Contexto
GET /api/v1/avatar/:id faz uma query no banco para buscar o user_profile e redireciona para a URL do CloudFront. O cache HTTP está configurado para 1.minute, fazendo browsers e CDNs revalidarem a cada minuto. Nos logs de produção esse endpoint aparece como o mais lento (até 1.026 ms) e é o principal gatilho do autoscaler do Heroku (threshold: 1.000 ms). A URL do avatar só muda quando o usuário troca a foto — não há razão para um TTL tão curto.
Objetivos
- Reduzir o número de hits no Rails para o endpoint de avatar
- Eliminar o principal gargalo que dispara o autoscaler
Fora de escopo
— (não registrado na spec original)
Mudanças
app/controllers/api/v1/users_avatar_controller.rb: alterarexpires_in 1.minuteparaexpires_in 1.hour
Como verificar
- Fazer request para
/api/v1/avatar/:ide confirmar o headerCache-Control: max-age=3600, public - Confirmar que o redirect para o CloudFront continua funcionando
Documentação
Nenhuma mudança de documentação necessária.