PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Meta

Design a food ordering and delivery system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design scalable, reliable backend systems including API design, data modeling, state management, dispatching, real-time updates, and consistency choices for a marketplace connecting customers, restaurants, and couriers, and it falls under the System Design domain.

  • medium
  • Meta
  • System Design
  • Software Engineer

Design a food ordering and delivery system

Company: Meta

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a backend system for a **food ordering + delivery** platform (like a marketplace that connects customers, restaurants, and delivery couriers). ## Core user flows 1. Customer: - Browse/search restaurants and menus - Add items to cart, place an order, pay - Track order status (prep, picked up, arriving) 2. Restaurant: - Receive order, accept/reject, update prep status 3. Courier: - Receive delivery offers, accept, pickup, deliver ## Requirements ### Functional - Restaurant/menu discovery (basic search/filter is enough) - Order creation and payment intent - Reliable order state machine (created → accepted → preparing → ready → picked_up → delivered/cancelled) - Dispatch: assign courier to an order - Real-time-ish tracking and status updates to customer ### Non-functional - High availability (avoid single points of failure) - Consistent order state (no double-deliver, no lost orders) - Handle peak traffic (lunch/dinner bursts) - Observability: metrics, logs, tracing ## Deliverables - APIs (high level) - Data model (high level) - Architecture and major components - Approach to scaling, reliability, and failure handling (explicitly call out single points of failure) - Consistency model choices and trade-offs

Quick Answer: This question evaluates a candidate's ability to design scalable, reliable backend systems including API design, data modeling, state management, dispatching, real-time updates, and consistency choices for a marketplace connecting customers, restaurants, and couriers, and it falls under the System Design domain.

Related Interview Questions

  • Design Top-K, Crawler, and Chess Systems - Meta (hard)
  • Design Search And Web Crawling Systems - Meta (medium)
  • Design an Instagram-Style Social Feed - Meta (medium)
  • Design an Online Game Leaderboard - Meta (hard)
  • Design an On-Demand Delivery Platform - Meta (medium)
Meta logo
Meta
Jan 5, 2026, 12:00 AM
Software Engineer
Onsite
System Design
6
0
Loading...

Design a backend system for a food ordering + delivery platform (like a marketplace that connects customers, restaurants, and delivery couriers).

Core user flows

  1. Customer:
    • Browse/search restaurants and menus
    • Add items to cart, place an order, pay
    • Track order status (prep, picked up, arriving)
  2. Restaurant:
    • Receive order, accept/reject, update prep status
  3. Courier:
    • Receive delivery offers, accept, pickup, deliver

Requirements

Functional

  • Restaurant/menu discovery (basic search/filter is enough)
  • Order creation and payment intent
  • Reliable order state machine (created → accepted → preparing → ready → picked_up → delivered/cancelled)
  • Dispatch: assign courier to an order
  • Real-time-ish tracking and status updates to customer

Non-functional

  • High availability (avoid single points of failure)
  • Consistent order state (no double-deliver, no lost orders)
  • Handle peak traffic (lunch/dinner bursts)
  • Observability: metrics, logs, tracing

Deliverables

  • APIs (high level)
  • Data model (high level)
  • Architecture and major components
  • Approach to scaling, reliability, and failure handling (explicitly call out single points of failure)
  • Consistency model choices and trade-offs

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Meta•More Software Engineer•Meta Software Engineer•Meta System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.