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.
| Métrica | Valor |
|---|---|
| Requisições por segundo | 1,5M |
| Cache hit rate | >90% |
| Redução de requisições upstream | 60-95% |
| Melhoria de latência (P99) | até 90% |
| Overhead do proxy (P99) | ~2,1 ms |
| Disponibilidade | 99,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.
Fontes e referencias
- InfoQ: DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache (www.infoq.com)