TLDR Web Dev · ARTICLES & TUTORIALS

THE ARCHITECTURE OF DOORDASH'S CACHING SYSTEM

blog.quastor.org11 min read

Summary from the TLDR Web Dev newsletter

DoorDash transitioned from a Python monolith to a microservices architecture, using Kotlin and gRPC for service communication. To minimize latency, it focused on reducing network requests, primarily by implementing caching with Caffeine for local caching and Redis Lettuce for distributed caching. However, different teams independently creating caching solutions led to issues like cache staleness, lack of runtime controls, inadequate metrics, and inconsistent key schemas. To address this, DoorDash developed a shared caching library with features like layered caching (request local, local, and Redis caches), runtime feature flags for customization, and observability tools to monitor cache performance.