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.
Category Archives: Backend
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.
Examining Problematic Memory in C/C++ Applications with BPF, perf, and Memcheck
As applications grow in complexity, memory stability is often neglected, causing problems to appear over time.