Proxy cache Envoy e Valkey atinge 1,5M RPS no DoorDash

DoorDash desenvolveu o Entity Cache, um proxy cache transparente baseado em Envoy e Valkey, que atinge 1,5 milhão de requisições por segundo com 99,99999% de disponibilidade. A solução reduz alocações e melhora a latência sem alterar o código das aplicações.

R

Diagrama da arquitetura do Entity Cache mostrando Envoy, Valkey e fluxo de requisições
Diagrama da arquitetura do Entity Cache mostrando Envoy, Valkey e fluxo de requisições

DoorDash desenvolveu o Entity Cache, uma plataforma de proxy cache transparente que reduz requisições redundantes entre microsserviços. Construída sobre Envoy e Valkey, a solução atinge mais de 1,5 milhão de requisições por segundo (RPS) com 99,99999% de disponibilidade.

  • Entity Cache é um proxy cache transparente que opera na malha de serviços Envoy.
  • Não requer alterações no código das aplicações.
  • Usa invalidação baseada em eventos via Kafka e refresh probabilístico (XFetch).
  • Reduziu alocações em 50-60%, aumentou throughput em 5x e reduziu latência P99 em até 80%.
  • Cache hit >90%, redução de requisições upstream entre 60-95%.

O problema das requisições redundantes em microsserviços

Em uma arquitetura de microsserviços, serviços frequentemente consultam dados que mudam com pouca frequência. Sem cache, cada requisição gera carga desnecessária no backend, aumenta o consumo de recursos computacionais e eleva a latência. Com o crescimento do ecossistema, esse problema se intensifica.

O Entity Cache foi criado para resolver esse gargalo sem exigir alterações no código das aplicações. Os serviços continuam fazendo requisições normalmente, enquanto o cache é gerenciado centralmente pela malha de serviços.

Arquitetura do Entity Cache

Quando uma requisição chega ao Entity Cache, o proxy verifica no Valkey se há uma resposta em cache válida. Em caso de acerto (cache hit), a resposta é retornada diretamente. Em caso de erro (cache miss), a requisição é encaminhada ao serviço upstream, e a resposta é armazenada conforme políticas configuradas.

  • Invalidação baseada em eventos via Kafka, comparando timestamps para evitar invalidação distribuída.
  • TTL duplo permite servir dados levemente desatualizados durante falhas.
  • Otimizações: pools de buffer customizados, lock-free single-flight, XFetch para refresh probabilístico.

Resultados de desempenho e impacto

As otimizações reduziram as taxas de alocação em 50% a 60%, aumentaram o throughput por pod em aproximadamente cinco vezes e reduziram os picos de latência P99 em até 80%.

A tabela abaixo resume os principais indicadores alcançados.

Resiliência e tratamento de falhas

Durante uma falha de upstream que durou várias horas, o Entity Cache continuou servindo dados em cache desatualizados, mas ainda válidos, em vez de falhar. Esse comportamento foi possível graças ao design que prioriza a disponibilidade sobre a consistência estrita em cenários de indisponibilidade.

O sistema remove automaticamente instâncias de cache problemáticas e direciona requisições para os serviços upstream, garantindo que a operação continue mesmo com degradação parcial.

Implicações para o mercado de TI

A abordagem da DoorDash demonstra como malhas de serviço como Envoy podem ser estendidas para incluir cache inteligente na infraestrutura, sem aumentar a complexidade das aplicações. Para empresas brasileiras que lidam com arquiteturas de microsserviços em escala, o Entity Cache oferece um modelo de referência para reduzir latência e custos operacionais.

O uso de Valkey, um fork do Redis com foco em alta disponibilidade, e a integração com Kafka para invalidação reativa reforçam tendências de adoção de tecnologias open source no mercado corporativo.

Principais indicadores de desempenho do Entity Cache
MétricaValor
Requisições por segundo1,5M
Cache hit rate>90%
Redução de requisições upstream60-95%
Melhoria de latência (P99)até 90%
Overhead do proxy (P99)~2,1 ms
Disponibilidade99,99999%

Arraste para o lado para ver toda a tabela.

Perguntas Frequentes (FAQ)

O que é o Entity Cache?

É uma plataforma de proxy cache transparente construída pela DoorDash sobre Envoy e Valkey para reduzir requisições redundantes entre microsserviços.

Como o Entity Cache mantém a consistência dos dados?

Usa invalidação orientada a eventos via Kafka e threshold de TTL duplo para servir dados levemente desatualizados durante falhas.

Quais tecnologias o Entity Cache utiliza?

Envoy, Valkey, Kafka e algoritmos como XFetch para refresh probabilístico.

O Entity Cache exige mudanças no código das aplicações?

Não. Ele opera de forma transparente na malha de serviços, sem exigir alterações no código das aplicações consumidoras ou provedoras.

R

Sobre o autor

Redação

Editor-chefe

Usuário técnico criado para escrever conteúdos da redação.

Perguntas frequentes

O que é o Entity Cache? +

É uma plataforma de proxy cache transparente construída pela DoorDash sobre Envoy e Valkey para reduzir requisições redundantes entre microsserviços.

Como o Entity Cache mantém a consistência dos dados? +

Usa invalidação orientada a eventos via Kafka e threshold de TTL duplo para servir dados levemente desatualizados durante falhas.

Quais tecnologias o Entity Cache utiliza? +

Envoy, Valkey, Kafka e algoritmos como XFetch para refresh probabilístico.

O Entity Cache exige mudanças no código das aplicações? +

Não. Ele opera de forma transparente na malha de serviços, sem exigir alterações no código das aplicações consumidoras ou provedoras.

Mais em Infraestrutura

Newsletter

Receba os destaques no seu e-mail

Cadastre-se e acompanhe as novidades em primeira mão.