Quando o checkout trava na Black Friday, o diagnóstico imediato é quase sempre o mesmo: banco de dados sobrecarregado, cache mal configurado, servidor no limite.
Esses são problemas reais — e os mais óbvios de identificar.
O que passa despercebido com mais frequência é o gargalo que fica escondido no meio do fluxo de compra: a cotação de frete em tempo real.
É uma das integrações mais críticas do checkout, e uma das menos testadas sob carga.
Por que frete é diferente das outras integrações
A maioria das integrações críticas de um checkout pode ser testada de forma relativamente isolada. Gateway de pagamento, antifraude, consulta de CEP, cada um tem comportamento previsível sob carga se a integração foi bem implementada.
Cotação de frete tem uma particularidade que complica tudo: ela chama múltiplas transportadoras simultaneamente, agrega os resultados e devolve as opções ao usuário, tudo em tempo real, enquanto o cliente está na tela esperando.
Na prática, isso significa que o tempo de resposta do componente de frete é o máximo entre todas as transportadoras consultadas, não a média.
Se quatro transportadoras respondem em 300ms e uma responde em 2.800ms, o usuário espera quase 3 segundos, ou vê o timeout, dependendo de como a integração foi implementada.
Em tráfego normal, 3 segundos é ruim mas tolerável. Em Black Friday, com centenas de usuários chegando ao checkout ao mesmo tempo, cada requisição de frete travada segura um recurso do servidor.
A fila cresce. O checkout fica cada vez mais lento.
A transportadora lenta, que provavelmente está atendendo todos os e-commerces do país ao mesmo tempo, piora à medida que o tráfego global cresce.
O resultado é checkout que trava por causa de um serviço externo que não é seu — mas cujo impacto recai inteiramente sobre a sua taxa de conversão.
Os três pontos onde a integração de frete mais falha
1. Ausência de cache de cotação:
Cotação de frete não é uma informação que muda a cada segundo. Para um CEP específico, com um peso e dimensões específicos, o resultado de uma cotação vai ser o mesmo por horas — ou pelo menos por minutos.
Mas a maioria das implementações não cacheia. Cada usuário que chega ao checkout com o mesmo CEP e o mesmo peso de produto dispara uma nova consulta às APIs das transportadoras. Com 500 usuários simultâneos no checkout, são 500 chamadas paralelas — muitas delas pedindo exatamente a mesma cotação.
Cache de cotação por combinação de CEP + peso + dimensões elimina a maioria dessas chamadas redundantes. O TTL pode ser de 5 a 30 minutos dependendo da variação de preços da transportadora. O impacto em carga é substancial.
2. Ausência de fallback quando a transportadora não responde
Sem fallback, timeout de uma transportadora significa que o usuário vê o campo de frete em branco, ou o botão de finalizar compra desativado enquanto o sistema tenta a consulta novamente, ou uma mensagem de erro genérica que quebra o fluxo de compra.
Com fallback bem implementado, timeout de uma transportadora significa que essa opção simplesmente não aparece na lista — as demais aparecem normalmente, e o checkout continua. O usuário nem percebe.
O fallback mais robusto usa um valor estimado baseado no histórico de cotações para aquela faixa de CEP e peso. O usuário vê um valor aproximado com aviso de que o valor final será confirmado — solução que mantém o fluxo sem prometer o que o sistema não consegue calcular naquele momento.
3. Cotação síncrona no caminho crítico sem timeout explícito
Integração de frete sem timeout definido é integração que pode ficar pendurada indefinidamente esperando uma resposta que não vai chegar.
Um servidor com 200 conexões disponíveis e 200 requisições de cotação de frete travadas em timeout de 30 segundos significa 200 conexões ocupadas por 30 segundos. Nenhuma requisição nova consegue ser processada. O site inteiro para.
Timeout explícito, de 2 a 5 segundos dependendo do contexto, garante que a conexão seja liberada rapidamente. Combinado com fallback, garante que o checkout continua mesmo que a transportadora não responda.
A arquitetura que não trava
A diferença entre uma integração de frete que sobrevive à Black Friday e uma que não sobrevive está em três decisões de arquitetura tomadas antes do evento:
Cache por combinação de parâmetros. Toda cotação com os mesmos parâmetros de entrada — CEP de destino, peso, dimensões, valor declarado — devolve o resultado em cache sem chamar nenhuma transportadora.
O cache é invalidado por TTL, não por evento. Implementação em Redis ou Memcached com chave estruturada por hash dos parâmetros.
Fanout assíncrono com agregação por timeout. Em vez de chamar as transportadoras em sequência ou esperar todas responderem, o sistema chama todas em paralelo e agrega os resultados de quem respondeu dentro do timeout. Quem não respondeu a tempo não aparece na lista — sem bloquear o checkout.
Circuit breaker por transportadora. Se uma transportadora começa a responder com erro ou timeout em alta frequência, o circuit breaker para de chamá-la temporariamente — por 30 segundos, por um minuto, dependendo da configuração.
Durante esse período, ela simplesmente não aparece como opção. Quando o circuit breaker fecha, tenta novamente com volume controlado. Isso protege o sistema de acumular chamadas para um serviço que não está respondendo.
Essas três decisões, implementadas corretamente, produzem um componente de frete que degrada graciosamente sob carga: em situação normal, devolve todas as opções rapidamente.
Em situação de carga alta ou instabilidade de transportadora, devolve as opções disponíveis com latência controlada, sem travar o checkout.
O que testar antes da Black Friday
Teste de carga genérico no checkout não é suficiente para validar a integração de frete. É preciso testar especificamente:
- Comportamento sob timeout de transportadora: Simule uma transportadora respondendo em 10 segundos (acima de qualquer timeout razoável). O checkout continua? As demais opções aparecem? O tempo de resposta total é aceitável?
- Comportamento sob ausência total de cotação: Simule todas as transportadoras indisponíveis. O checkout quebra ou apresenta fallback adequado?
- Taxa de hit de cache sob carga: Com 1.000 usuários simultâneos chegando ao checkout com distribuição realista de CEPs, qual porcentagem das cotações é servida pelo cache? Se está abaixo de 60%, o TTL ou a estratégia de chave de cache precisa ser revisada.
- Latência do componente de frete isolado: Quanto tempo leva o componente de frete, em média e no percentil 95, sob a carga esperada para o pico? Esse número precisa estar dentro do orçamento de latência total do checkout.
Uma nota sobre o case da Dupla
Em 2020, desenvolvemos um sistema de cotação de frete para uma operação de e-commerce que precisava substituir uma solução de mercado, cara, lenta e que acumulava falhas.
O prazo era menos de 60 dias, e o sistema precisava estar em produção antes da Black Friday daquele ano, integrando a plataforma do cliente e todos os marketplaces conectados a ela.
O sistema foi entregue no prazo, homologado e integrado dentro da janela.
Durante a Black Friday de 2020, foi a única solução que não apresentou falhas, inclusive em comparação com sistemas de grandes empresas do setor.
O volume foi absorvido sem incidente, e a operação ganhou escala para suportar a Black Friday de 2021 com a mesma base.
O que permitiu esse resultado não foi tecnologia exótica.
Foi arquitetura correta: cache agressivo por parâmetros de cotação, fanout assíncrono com agregação por timeout, fallback para estimativa quando a transportadora não respondia, e circuit breaker por transportadora com recuperação gradual.
São decisões que qualquer equipe técnica competente pode implementar, desde que tomadas com antecedência suficiente.
Cotação de frete não é o componente mais glamouroso de um checkout. Não é o que aparece nas retrospectivas de Black Friday quando algo dá certo.
Mas é o que aparece nas post-mortems quando algo dá errado, e quando aparece, geralmente está no caminho crítico de centenas de pedidos perdidos.
A boa notícia é que o problema tem solução conhecida. A solução tem custo de implementação muito menor do que o custo de um checkout travado na Black Friday.
A Dupla desenvolve integrações de frete e checkout para e-commerces que precisam de desempenho comprovado em produção.
Se quiser entender como está a sua integração atual e o que pode ser melhorado antes do evento, fale com a gente.
