System design interview questionHardProximity / Marketplace

Design a Food Delivery Service like DoorDash or Uber Eats

Design DoorDash/Uber Eats-style food delivery: browse restaurants, place orders, and track courier status in near real time.

Interview scope

Client → Gateway/LB → App; Cache for menus; DB for orders; Realtime Gateway for tracking; Message Queue for dispatch/notifications. No Client → DB.

Functional requirements

  • Browse nearby restaurants / menus.
  • Place an order and assign a courier.
  • Push live order/courier updates to the customer.

Scale and quality goals

  • Menu/restaurant reads should be cache-friendly.
  • Order state must be durable in DB.
  • Live tracking needs Realtime Gateway; side jobs via Queue.

Capacity assumption

Design for this scale

Assume ~5M orders/day (~58 RPS average) plus heavy browse traffic and live tracking connections at dinner peak.

Practice more than a diagram

Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.

Explore Premium