PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/CloudKitchens

Design real-time kitchen order fulfillment system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's competency in designing real-time backend systems, emphasizing concurrency control, stateful resource allocation, time-sensitive freshness constraints, efficient eviction policies, and action logging.

  • medium
  • CloudKitchens
  • System Design
  • Software Engineer

Design real-time kitchen order fulfillment system

Company: CloudKitchens

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

## Backend Engineering Challenge: Real-time order fulfillment Design and implement (conceptually) a **single-process, real-time backend system** for fulfilling food orders in a delivery-only kitchen. **Orders can be placed and picked up concurrently.** ### Order model Each order has: - **id**: short identifier (e.g., `e6bc2`) used at pickup time - **name**: food name - **temp**: ideal storage temperature: `hot`, `cold`, or `room` - **price**: dollars - **freshness**: duration (seconds) the food remains fresh **at its ideal temperature** **Freshness degradation rule** - If an order is **not** stored at its ideal temperature, it degrades **2× as quickly** as it would at ideal temperature. ### Storage devices - **Heater**: capacity 6, stores at `hot` - **Cooler**: capacity 6, stores at `cold` - **Shelf**: capacity 12, stores at `room` ### Placement logic (on order received) When a new order arrives: 1. The system “instantly cooks” it and must **store** it until pickup. 2. Try to store it at its **ideal** temperature (heater/cooler/shelf if room). 3. If the ideal option is full, place it on the **shelf**. 4. If the shelf is also full: - First, try to **move** an existing `hot`/`cold` order currently on the shelf into the **heater/cooler respectively**, if there is room. - If no such move is possible, **discard** one order currently on the shelf (choose a thoughtful discard criterion) to make room, then place the new order. ### Pickup logic - When an order is picked up, it must be removed **quickly without moving other orders around**. - If a pickup occurs and the order is not present, the kitchen takes **no action**. - If at pickup time the order’s age has exceeded its freshness duration (accounting for 2× degradation when not at ideal temperature), the order must be **discarded instead of picked up**. ### Action ledger Capture a time-ordered action ledger. Every action record includes at least: - **timestamp** - **order id** - **action**: `place`, `move`, `pickup`, `discard` - **target**: `heater`, `cooler`, or `shelf` Constraints: - For each order: first action is always **place**; last is **pickup** or **discard**. - Output actions to console in **human-readable** form as they occur. ### Execution harness (load test / simulator) Build a CLI harness that: - Fetches a list of orders from a challenge server. - Places orders at a configurable **rate** (default: 500 ms between orders). - Schedules each order’s pickup at a **random time** after placement within a closed interval (default: 4–8 seconds). - After all orders are processed (picked up or discarded), submits the action ledger to the server and exits. ### Non-functional requirements - **Concurrency:** placements and removals may happen concurrently; design should be safe for use beyond the harness. - **Efficiency:** discard selection when the shelf is full must be **better than O(n)** worst-case in the shelf size. - **Single process** (may be multi-threaded). Explain: - Your system architecture and concurrency approach. - Data structures enabling fast placement, lookup-by-id removal, and efficient shelf discard. - How you compute freshness under temperature changes. - Your discard criterion and why it’s reasonable.

Quick Answer: This question evaluates a candidate's competency in designing real-time backend systems, emphasizing concurrency control, stateful resource allocation, time-sensitive freshness constraints, efficient eviction policies, and action logging.

CloudKitchens logo
CloudKitchens
Feb 11, 2026, 12:00 AM
Software Engineer
Onsite
System Design
12
0

Backend Engineering Challenge: Real-time order fulfillment

Design and implement (conceptually) a single-process, real-time backend system for fulfilling food orders in a delivery-only kitchen. Orders can be placed and picked up concurrently.

Order model

Each order has:

  • id : short identifier (e.g., e6bc2 ) used at pickup time
  • name : food name
  • temp : ideal storage temperature: hot , cold , or room
  • price : dollars
  • freshness : duration (seconds) the food remains fresh at its ideal temperature

Freshness degradation rule

  • If an order is not stored at its ideal temperature, it degrades 2× as quickly as it would at ideal temperature.

Storage devices

  • Heater : capacity 6, stores at hot
  • Cooler : capacity 6, stores at cold
  • Shelf : capacity 12, stores at room

Placement logic (on order received)

When a new order arrives:

  1. The system “instantly cooks” it and must store it until pickup.
  2. Try to store it at its ideal temperature (heater/cooler/shelf if room).
  3. If the ideal option is full, place it on the shelf .
  4. If the shelf is also full:
    • First, try to move an existing hot / cold order currently on the shelf into the heater/cooler respectively , if there is room.
    • If no such move is possible, discard one order currently on the shelf (choose a thoughtful discard criterion) to make room, then place the new order.

Pickup logic

  • When an order is picked up, it must be removed quickly without moving other orders around .
  • If a pickup occurs and the order is not present, the kitchen takes no action .
  • If at pickup time the order’s age has exceeded its freshness duration (accounting for 2× degradation when not at ideal temperature), the order must be discarded instead of picked up .

Action ledger

Capture a time-ordered action ledger. Every action record includes at least:

  • timestamp
  • order id
  • action : place , move , pickup , discard
  • target : heater , cooler , or shelf

Constraints:

  • For each order: first action is always place ; last is pickup or discard .
  • Output actions to console in human-readable form as they occur.

Execution harness (load test / simulator)

Build a CLI harness that:

  • Fetches a list of orders from a challenge server.
  • Places orders at a configurable rate (default: 500 ms between orders).
  • Schedules each order’s pickup at a random time after placement within a closed interval (default: 4–8 seconds).
  • After all orders are processed (picked up or discarded), submits the action ledger to the server and exits.

Non-functional requirements

  • Concurrency: placements and removals may happen concurrently; design should be safe for use beyond the harness.
  • Efficiency: discard selection when the shelf is full must be better than O(n) worst-case in the shelf size.
  • Single process (may be multi-threaded).

Explain:

  • Your system architecture and concurrency approach.
  • Data structures enabling fast placement, lookup-by-id removal, and efficient shelf discard.
  • How you compute freshness under temperature changes.
  • Your discard criterion and why it’s reasonable.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More CloudKitchens•More Software Engineer•CloudKitchens Software Engineer•CloudKitchens 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.