by Xiaokang Zhang | Sep 18, 2021 | Software Architecture
Cache can help reduce the load to the database and improve the service performance, however, designing and using the cache in the optimal way is one of the most tricky problems. In Doordash’s monolithic world, there were many anti-patterns cache usage, which makes...
by Xiaokang Zhang | Sep 18, 2021 | Software Architecture
Database is oftentimes the bottleneck of service scalability and reliability. Between 2018 and 2020, Doordash experienced multiple site wide outages during our traffic peak hours due to database issues. Before we are able to break down the monolithic service, we need...
by Xiaokang Zhang | Sep 16, 2021 | Software Architecture
ORM is widely used in Doordash’s Django monolithic service. Like many other technologies, it enabled the developer to focus on the business logic. However, it became a major scalability bottleneck as the service grew. In this chapter, I am going to talk about the bad...
by Xiaokang Zhang | Sep 16, 2021 | Software Architecture
In the monolithic world, doordash service only has two layers: a python Django monolithic service as the backend, and the client layer, including the web and mobile clients. The simple architecture worked well when the business and the team were small, as it enabled...
by Xiaokang Zhang | Sep 16, 2021 | Software Architecture
By the end of this November, I will be working at Doordash for four years. This is a major milestone and is a good time to take a break and summarize the learnings along the course. So I decided to write this blog series. I will focus on discussing the bad and good...
by Xiaokang Zhang | Aug 10, 2020 | Software Architecture
This is the third article discussing the challenges of implementing high concurrent web applications. In the previous two articles, we mainly focused on the challenge for handling concurrent requests and the two design patterns of handling concurrent requests. In this...