Postagens

Mostrando postagens com o rótulo Backend

Quando usar ElastiCache Redis: resolvendo lentidão no RDS com camada de cache

Você abre o painel de métricas do RDS às 14h de uma sexta-feira e vê o ReadIOPS no teto, latência de queries subindo para 800ms, e a aplicação começando a retornar timeouts. O banco está respondendo as mesmas perguntas centenas de vezes por segundo — dados de catálogo, sessões de usuário, resultados de busca que não mudam entre uma requisição e outra. Adicionar uma camada de ElastiCache Redis entre a aplicação e o RDS é a intervenção mais direta para esse padrão de problema. TL;DR — Quando o ElastiCache Redis resolve o problema de lentidão no RDS Situação ElastiCache Redis ajuda? Motivo Mesmas queries de leitura repetidas com alta frequência ✅ Sim Resultado servido da memória, sem tocar o RDS Dados que mudam raramente (catálogo, configurações) ✅ Sim TTL longo, hit rate alto Sessões de usuário e tokens de autenticação ✅ Sim Estrutura de dados nativa (Hash, String) Queries complexas com JOINs pesados e re...

LSI vs GSI no DynamoDB: Quando Usar Cada Tipo de Índice Secundário

Você modelou sua tabela DynamoDB com uma partition key e sort key perfeitas para o acesso principal — e então o produto pediu uma nova tela que precisa filtrar por um atributo completamente diferente. É nesse momento que a escolha entre LSI e GSI deixa de ser teórica e vira um problema real de design. TL;DR — LSI vs GSI no DynamoDB Característica LSI (Local Secondary Index) GSI (Global Secondary Index) Partition Key Mesma da tabela base Qualquer atributo Sort Key Atributo diferente da tabela base Qualquer atributo (opcional) Quando criar Somente na criação da tabela A qualquer momento Consistência de leitura Strongly consistent ou eventually consistent Somente eventually consistent Throughput Compartilha com a tabela base Capacidade provisionada própri...

Visibility Timeout no SQS: Por Que Suas Mensagens São Processadas Duas Vezes

Você está vendo a mesma mensagem sendo processada por dois consumidores diferentes, gerando duplicatas no banco de dados ou efeitos colaterais repetidos em produção. O problema quase sempre está no Visibility Timeout do SQS configurado abaixo do tempo real de processamento — e o SQS, por design, assume que a mensagem foi perdida e a reentrega. TL;DR — Visibility Timeout no SQS Ponto Detalhe O que é Janela de tempo em que uma mensagem fica invisível para outros consumidores após ser recebida Padrão 30 segundos Faixa configurável 0 segundos a 12 horas Causa de duplicata Processamento demora mais que o timeout — SQS reentrega a mensagem Solução imediata Aumentar o timeout ou chamar ChangeMessageVisibility durante o processamento Garantia do SQS At-least-once delivery — duplicatas são esperadas, idempotência é obrigatória Como o Visibility Timeout Funciona no SQS Quando um consumidor chama ...

ALB Retornando 502 Bad Gateway: Instâncias Saudáveis, Resposta Inválida

Você abre o console da AWS, confere o target group e todas as instâncias estão Healthy . Mesmo assim, o ALB continua retornando 502 Bad Gateway para os clientes. Esse é um dos cenários mais frustrantes em operações com Application Load Balancer — o health check passa, mas a aplicação real falha silenciosamente na camada de protocolo HTTP. TL;DR — Diagnóstico Rápido do 502 no ALB Causa Raiz Sinal Observável Camada Resposta HTTP malformada da aplicação 502 imediato, sem latência Aplicação Conexão fechada antes da resposta completa 502 intermitente sob carga Keep-alive / TCP Timeout de idle no ALB menor que no backend 502 em requisições longas Configuração ALB Header HTTP inválido ou tamanho excedido 502 em rotas específicas Protocolo HTTP Target desregistrado durante requisição ativa 502 durante deploy/scale-in Ciclo de vida Como o ALB Processa Respostas — Antes de Depurar O ALB opera na camada ...