<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr" -->

---
title: DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy...
description: DoorDash built Entity Cache, a transparent proxy caching platform using Envoy and Valkey, to reduce redundant service-to-service calls across its microservices...
canonical: https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability | daily.dev
og:description: DoorDash built Entity Cache, a transparent proxy caching platform using Envoy and Valkey, to reduce redundant service-to-service calls across its microservices...
og:url: https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr
og:image: https://api.daily.dev/og/posts/F15YsBpgr.png
og:image:alt: DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability

**[InfoQ](https://daily.dev/sources/infoq)** · 3 min read · 1 upvotes · 0 comments

## Summary

DoorDash built Entity Cache, a transparent proxy caching platform using Envoy and Valkey, to reduce redundant service-to-service calls across its microservices architecture. Operating inside DoorDash's service mesh, it intercepts HTTP and gRPC requests without requiring application code changes. The platform handles over 1.5M requests per second at 99.99999% availability. Key features include Kafka-driven event invalidation with timestamp comparison, dual TTL thresholds for serving stale data during outages, custom buffer pools, a lock-free single-flight mechanism to prevent duplicate cache-miss work, and the XFetch algorithm for probabilistic early refresh to avoid cache stampedes. These optimizations yielded 50–60% lower allocation rates, 5x per-pod throughput gains, 80% reduction in P99 latency spikes, and 60–95% upstream request reduction.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.infoq.com/news/2026/07/doordash-entity-cache-proxy>

## Questions this post answers

### How does DoorDash's Entity Cache achieve high availability without application code changes?

Entity Cache runs as a transparent proxy built on Envoy and Valkey inside DoorDash's service mesh, intercepting HTTP and gRPC requests before they reach upstream services so caching is managed centrally without changing application code. It serves over 1.5 million requests per second across 100+ endpoints and 50 services at 99.99999% availability.

_Explore how large-scale infrastructure teams share proxy caching architectures like this on daily.dev._

### What is the XFetch algorithm used for in cache stampede prevention?

XFetch is a probabilistic early refresh algorithm that refreshes frequently accessed cache entries before they expire, reducing the chance that many requests hit an expired entry simultaneously and cause a stampede on the backend. DoorDash uses it alongside custom buffer pools and a lock-free single-flight mechanism in its Entity Cache proxy.

_Engineers tuning cache reliability at scale can follow techniques like XFetch on daily.dev._

### How does event-driven cache invalidation with Kafka work in a proxy cache layer?

DoorDash's Entity Cache uses Kafka-based event-driven invalidation that compares update timestamps against cached responses to refresh stale entries, avoiding the need for distributed cache deletions. Dual TTL thresholds let slightly stale responses continue serving during outages, and Envoy routes around unhealthy cache instances directly to upstream services when needed.

_Teams designing resilient caching layers can track approaches like this on daily.dev._

## Similar posts on daily.dev

- [How DoorDash Moved to a Service Mesh to Handle 80M Requests/Second](https://daily.dev/posts/how-doordash-moved-to-a-service-mesh-to-handle-80m-requests-second-oq0xmduf0) · ByteByteGo · 80 upvotes · 0 comments
- [How to Improve Envoy Resilience in Latency-Critical Systems](https://daily.dev/posts/how-to-improve-envoy-resilience-in-latency-critical-systems-adjd3gbmi) · DigitalOcean Community · 0 upvotes · 0 comments
- [How Zalando Built an In-Process Client-Side Load Balancer for One Million Requests per Second](https://daily.dev/posts/how-zalando-built-an-in-process-client-side-load-balancer-for-one-million-requests-per-second-gwprc272c) · InfoQ · 0 upvotes · 0 comments

---

Tags: [#microservices](https://daily.dev/tags/microservices), [#service-mesh](https://daily.dev/tags/service-mesh), [#envoy](https://daily.dev/tags/envoy), [#valkey](https://daily.dev/tags/valkey)

[View this post on daily.dev](https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability","url":"https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr"},"datePublished":"2026-07-20T14:05:09.235Z","dateModified":"2026-09-14T08:16:30.114Z","description":"DoorDash built Entity Cache, a transparent proxy caching platform using Envoy and Valkey, to reduce redundant service-to-service calls across its microservices...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b2e761c728ca68683ab5080f87ce478d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b2e761c728ca68683ab5080f87ce478d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"InfoQ","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"InfoQ","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/afc3bced3e1e4b188dd9127017a60e0c","url":"https://daily.dev/sources/infoq"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"microservices,service-mesh,envoy,valkey","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"InfoQ","item":"https://daily.dev/sources/infoq"},{"@type":"ListItem","position":3,"name":"DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/doordash-uses-envoy-and-valkey-for-a-1-5m-rps-proxy-cache-with-99-99999-availability-f15ysbpgr#faq","mainEntity":[{"@type":"Question","name":"How does DoorDash's Entity Cache achieve high availability without application code changes?","acceptedAnswer":{"@type":"Answer","text":"Entity Cache runs as a transparent proxy built on Envoy and Valkey inside DoorDash's service mesh, intercepting HTTP and gRPC requests before they reach upstream services so caching is managed centrally without changing application code. It serves over 1.5 million requests per second across 100+ endpoints and 50 services at 99.99999% availability. Explore how large-scale infrastructure teams share proxy caching architectures like this on daily.dev."}},{"@type":"Question","name":"What is the XFetch algorithm used for in cache stampede prevention?","acceptedAnswer":{"@type":"Answer","text":"XFetch is a probabilistic early refresh algorithm that refreshes frequently accessed cache entries before they expire, reducing the chance that many requests hit an expired entry simultaneously and cause a stampede on the backend. DoorDash uses it alongside custom buffer pools and a lock-free single-flight mechanism in its Entity Cache proxy. Engineers tuning cache reliability at scale can follow techniques like XFetch on daily.dev."}},{"@type":"Question","name":"How does event-driven cache invalidation with Kafka work in a proxy cache layer?","acceptedAnswer":{"@type":"Answer","text":"DoorDash's Entity Cache uses Kafka-based event-driven invalidation that compares update timestamps against cached responses to refresh stale entries, avoiding the need for distributed cache deletions. Dual TTL thresholds let slightly stale responses continue serving during outages, and Envoy routes around unhealthy cache instances directly to upstream services when needed. Teams designing resilient caching layers can track approaches like this on daily.dev."}}]}
```

