QuickBite is building a food delivery platform (like DoorDash / Deliveroo) operating in a single metro area. The system needs:
- Restaurant catalog - list of 5,000 restaurants with menus, prices, photos, hours, and ratings. Filterable by cuisine, price range, delivery time, and rating.•Ordering - users browse menus, add items to cart, customize orders (extra cheese, no onions), and checkout. The order is sent to the restaurant and a delivery driver simultaneously.•Driver matching - assign the nearest available driver to pick up the order. Drivers receive the assignment on their app with restaurant and customer details.•Real-time tracking - after pickup, the customer sees the driver's live location on a map, with an updated ETA.•ETA prediction - estimate delivery time based on food preparation time (per restaurant), distance, and current traffic.•Reviews & ratings - rate the restaurant (food quality) and driver (delivery experience) separately.•Promotions - coupon codes, "free delivery" campaigns, and loyalty rewards.
Targeting 100,000 orders per day with 5,000 active drivers at peak.
Design a food delivery platform with restaurant listings, ordering, real-time driver tracking, and ETA estimates. Build this architecture under realistic production constraints, then validate tradeoffs in the design lab simulation.
Request path: The solution keeps ingress, service logic, and stateful dependencies separated so each layer can scale independently.
Reference flow: Web Clients -> Load Balancer -> API Gateway -> API Service -> Primary NoSQL DB -> Redis Cache -> Message Queue -> Background Workers