Identify Requirements, Goals & Capacity Estimation of the System
The system's requirements for DoorDash encompass key actors, namely customers, drivers (DoorDashers), administrators, and restaurants, along with functional and non-functional specifications. Customers can search for restaurants, order food, and track their orders, while restaurants can manage their profiles and updates. Non-functional aspects emphasize low latency, consistency during orders, high availability, and the ability to handle significant loads. The system estimates capacity for up to 15 billion dishes and 40 million daily orders, highlighting a read-heavy search functionality contrasted with write-heavy order processing. Certain functionalities, such as customer ratings and mapping, are out of scope.
Requirements and goals of the system
Main actors in the system
- Customers/consumers
- DoorDashers (Drivers)
- DoorDash Admin (from the company)
- Restaurant (Merchant)
Assumptions
- Unlimited food is available between the times a restaurant opens and closes. So there is no need to check the quantity of available food. No inventory management is required.
- Restaurants don’t have their own online ordering system/infrastructure, they will solely rely on us for all orders.
- Customers will be shown restaurants within a particular radius, say 10 miles.
- Customers are allowed to order food from only one restaurant at a time in an online order. Menu items from multiple restaurants can’t be combined in an order.