As DoorDash expanded and grew its product lines, we needed to find a better way to manage user data.
Category Archives: Backend
Improving Development Velocity with Generic, Server-Driven UI Components
In our previous article, Using Display Modules to Enable Rapid Experimentation on DoorDash’s Homepage, we discussed the concept of Display Modules, and how we built them to speed up development and implement a more flexible experimentation paradigm.
Building Faster Indexing with Apache Kafka and Elasticsearch
DoorDash describes how it built a faster search index using open source projects.
Leveraging the Pipeline Design Pattern to Modularize Recommendation Services
DoorDash engineers used a pipeline design pattern to make our recommendation page more efficient and flexible.
Leveraging OpenTelemetry For Custom Context Propagation
The ability to attach auxiliary metadata to requests within a large microservice architecture enables powerful use cases, such as infrastructure-level sharding, language localization, and testing-in-production.
Overcoming Localization Challenges for International Expansions
DoorDash defined four key challenges to getting its platform ready for an international launch.
Rebuilding and Migrating a Session Management System with Zero Downtime
Migrating DoorDash’s business-critical session management system in a disruption-free manner required careful planning and monitoring.
Migrating From Python to Kotlin for Our Backend Services
When DoorDash approached the limits of what our Django-based monolithic codebase could support, we needed to design a new stack that would provide a strong foundation for our logistics services.
Gradual Code Releases Using an In-House Kubernetes Canary Controller
New service releases deployed into DoorDash’s microservice architecture immediately begin processing and serving their entire volume of production traffic.
Optimizing OpenTelemetry’s Span Processor for High Throughput and Low CPU Costs
When companies move to microservices, they need to address a new challenge of setting up distributed tracing to identify availability or performance issues throughout the platform.