Quando milhares de usuários acessam o mesmo recurso ao mesmo tempo, o risco não é apenas aumento de tráfego. O problema mais perigoso é a sincronização da carga.
Se um dado popular expira no cache durante uma flash sale, todos os requests podem tentar regenerá-lo ao mesmo tempo. Esse comportamento cria o efeito conhecido como Thundering Herd, também chamado de cache stampede ou dogpile effect. O resultado é previsível: saturação do backend, aumento de latência, timeouts e degradação do checkout.
Em checkout performance, cada milissegundo de latência e cada requisição redundante representa risco de conversão. O Request Coalescing resolve exatamente esse cenário. Em vez de permitir que dezenas, centenas ou milhares de requisições idênticas atinjam o origin simultaneamente, a técnica agrupa essas chamadas e reaproveita uma única resposta para todos os usuários aguardando.
O que é o problema do Thundering Herd?
O Thundering Herd acontece quando um recurso muito acessado expira no cache exatamente no momento em que o tráfego sobe.
Imagine um cálculo de frete, uma promoção ou um preço muito consultado. Quando esse dado sai do cache, a primeira requisição consulta o backend para regenerá-lo. O problema é que, enquanto essa resposta ainda está sendo processada, outras requisições chegam, encontram o cache vazio e fazem exatamente a mesma coisa.
Isso gera uma explosão de chamadas redundantes ao banco de dados ou ao origin. Em vez de uma consulta, você passa a ter centenas ou milhares. O backend fica sobrecarregado e o checkout passa a responder mais devagar, ou simplesmente falha.
Esse cenário é especialmente crítico em e-commerce porque normalmente acontece em momentos de maior intenção de compra: campanhas sazonais, lançamentos, ações promocionais e Black Friday.
Por que isso acontece em e-commerce?
Em fluxos transacionais, vários dados são consultados simultaneamente por muitos usuários:
- preço de produto
- cálculo de frete
- elegibilidade de promoção
- disponibilidade de estoque
- resumo de carrinho
- validações auxiliares de checkout
Esses dados têm um padrão em comum: são muito lidos, mas nem sempre mudam a cada requisição.
Quando o cache expira sem coordenação entre requests, cada usuário tenta reconstruir o mesmo dado ao mesmo tempo. É exatamente aí que o Request Coalescing se torna importante.
Como o Request Coalescing funciona na prática
O Request Coalescing atua como um mecanismo de coordenação na infraestrutura distribuída.
Na prática, o fluxo é este:
-
A primeira requisição chega e vira a requisição líder.
Ela identifica que o dado não está em cache e segue para o origin. -
As requisições idênticas seguintes são agrupadas.
Em vez de disparar novas chamadas ao backend, elas aguardam o retorno da requisição líder. -
Uma única resposta alimenta todas as requisições.
Quando o origin responde, o resultado é reaproveitado para todos os usuários que estavam esperando, e o cache é repopulado.
Esse modelo reduz drasticamente a pressão sobre o backend e evita a multiplicação artificial da carga.
Benefícios para performance de checkout
O Request Coalescing traz ganhos diretos para a estabilidade do checkout.
1. Proteção do origin
O backend deixa de receber ondas de chamadas idênticas e passa a processar apenas o necessário. Isso reduz saturação de CPU, memória e conexões.
2. Redução de custo
Menos chamadas redundantes significam menor uso de recursos de infraestrutura, menor egress e menos desperdício operacional.
3. Estabilidade de P99
O maior benefício não aparece apenas na média da latência, mas na cauda da distribuição. Ao evitar bursts de chamadas simultâneas, o Request Coalescing reduz picos de latência e melhora a experiência dos usuários mais afetados.
4. Menos falhas em cascata
Quando o backend entra em colapso por carga redundante, o problema costuma se espalhar para outros serviços. Coalescing ajuda a impedir essa cascata.
Resiliência programável: além da configuração estática
O Request Coalescing fica ainda mais poderoso quando faz parte de uma estratégia de resiliência programável.
Isso significa que você pode:
- aplicar coalescing apenas em endpoints de alta concorrência;
- combinar a técnica com políticas de stale-while-revalidate;
- ajustar regras dinamicamente durante campanhas;
- proteger fluxos de checkout sem redesenhar a aplicação.
Por exemplo, faz sentido aplicar a técnica em rotas como:
- cálculo de frete
- consultas de preço
- validação de promoções
- respostas de catálogo muito acessadas
Já operações transacionais críticas, como autorização final de pagamento, seguem outro tratamento e não devem ser agrupadas da mesma maneira.
Request Coalescing e a arquitetura da Azion
A Azion permite aplicar esse tipo de proteção dentro de uma infraestrutura distribuída, mais próxima do usuário e com controle fino sobre o comportamento do tráfego. Isso torna possível absorver a demanda antes que ela sobrecarregue o backend.
Na prática, a arquitetura ajuda equipes de e-commerce a combinar:
- aceleração
- proteção
- controle
- observabilidade
Isso é especialmente útil quando o objetivo é manter a conversão estável durante picos de tráfego sem depender de escalonamento reativo no origin.
Exemplo real: Magalu
A Magalu é um exemplo de empresa que utiliza a Azion em cenários de alta escala e exigência de performance. Em ambientes como esse, proteger o origin e evitar gargalos em momentos críticos é fundamental para sustentar a experiência de compra.
Você pode conferir o case completo aqui:
https://www.azion.com/pt-br/casos-de-sucesso/magalu/
Esse tipo de aplicação reforça como estratégias de distribuição, proteção e controle de requests ajudam a manter a estabilidade de fluxos transacionais em escala.
Quando usar Request Coalescing
Use Request Coalescing quando:
- muitos usuários acessam o mesmo recurso ao mesmo tempo;
- o dado tem alta concorrência e baixa variação momentânea;
- o cache expirado pode gerar múltiplas consultas idênticas;
- você quer proteger o origin de picos coordenados;
- o checkout depende de endpoints muito requisitados.
Quando não usar
Evite aplicar Request Coalescing indiscriminadamente quando:
- a operação é altamente personalizada por usuário;
- o dado precisa ser processado individualmente por request;
- a resposta não pode ser reutilizada com segurança;
- o endpoint representa uma ação transacional irrepetível.
A técnica é excelente para deduplicar leituras concorrentes, mas não substitui a lógica de negócio nem deve ser usada em fluxos de escrita sem critério.
FAQ
O que é cache stampede?
É o cenário em que muitos requests tentam regenerar o mesmo dado expirado no cache ao mesmo tempo, sobrecarregando o backend.
Request Coalescing substitui cache?
Não. Ele complementa o cache. A função do coalescing é evitar que múltiplas requisições idênticas atinjam o origin simultaneamente.
Qual a diferença entre Request Coalescing e cache?
Cache entrega conteúdo já armazenado. Request Coalescing coordena requisições concorrentes quando o cache ainda não está disponível ou acabou de expirar.
Quando devo usar Request Coalescing no checkout?
Principalmente em endpoints de leitura muito acessados, como frete, preço, promoção e catálogo.
Isso ajuda em flash sales?
Sim. Flash sales concentram tráfego em poucos recursos muito consultados, o que aumenta o risco de Thundering Herd.
Conclusão
O Request Coalescing é uma técnica simples em conceito, mas muito poderosa na prática. Ele evita que o backend seja atacado por requisições redundantes exatamente no pior momento: quando o tráfego está alto e a conversão está em jogo.
Em checkout performance, a lógica é clara: não basta responder rápido em média. É preciso impedir que picos de carga derrubem os fluxos mais importantes do negócio.
Se você quer proteger o checkout contra cache stampede e manter estabilidade em escala, o Request Coalescing deve fazer parte da sua estratégia de resiliência.
Próximos passos
Pare de perder vendas por causa de um checkout lento.
Veja como a Azion protege seus momentos de receita mais importantes:
https://www.azion.com/pt-br/contato/
Leia também:
Checkout Performance: Guia Definitivo de Otimização para E-commerce em Escala