Order batching and courier assignment

DesignHard50 minDoorDash and Uber style

Your task

Design the order-batching and courier-assignment engine for a food-delivery marketplace handling 500k concurrent orders at dinner peak. The engine must assign couriers to orders (and batch multiple orders onto one courier) while balancing delivery time, courier earnings, and food freshness, recomputing assignments every few seconds as new orders and couriers arrive. Cover the data model, the assignment algorithm, and how you avoid thrashing already-committed assignments.

It covers

  • Batching
  • Assignment
  • Optimization