Design a global restaurant menu update system

Quick Overview

This question evaluates competence in large-scale system design, including distributed systems, data modeling, API design, time-windowed content scheduling, localization/overrides, offline synchronization, and observability for globally distributed devices.

Design a global restaurant menu update system

Company: Google

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a menu update system for a global chain of restaurants. Context: - The chain operates in many countries. - Each restaurant may have multiple kinds of menu-display devices (e.g., digital menu boards, kiosks, POS screens, tablets), potentially with different capabilities. - Menus have a shared global portion and localized country/region/store-specific portions. - Menu changes are centrally controlled by headquarters. - Menus can change daily, and breakfast/lunch/dinner menus may differ from the previous day. Requirements: 1. Distribute the correct menu to each restaurant/device for the correct time window (e.g., breakfast/lunch/dinner). 2. Support localization/overrides while reusing global menu components. 3. Scale to a large number of restaurants/devices worldwide (high scalability, multi-region). 4. Handle unreliable connectivity: if a restaurant/device goes offline, it should keep functioning and eventually catch up. 5. Consider operational corner cases (partial rollout, clock skew, failures). Describe: - Core APIs and data model. - How menu versions are published, scheduled, and delivered. - How devices sync, cache, and render menus. - How you ensure correctness, reliability, and observability at global scale.

Overview: This question evaluates competence in large-scale system design, including distributed systems, data modeling, API design, time-windowed content scheduling, localization/overrides, offline synchronization, and observability for globally distributed devices.

|Home/System Design/Google
Google logo
Google
Nov 12, 2025
hardSoftware EngineerOnsiteSystem Design
18
0

Design a menu update system for a global chain of restaurants.

Context:

  • The chain operates in many countries.
  • Each restaurant may have multiple kinds of menu-display devices (e.g., digital menu boards, kiosks, POS screens, tablets), potentially with different capabilities.
  • Menus have a shared global portion and localized country/region/store-specific portions.
  • Menu changes are centrally controlled by headquarters.
  • Menus can change daily, and breakfast/lunch/dinner menus may differ from the previous day.

Requirements:

  1. Distribute the correct menu to each restaurant/device for the correct time window (e.g., breakfast/lunch/dinner).
  2. Support localization/overrides while reusing global menu components.
  3. Scale to a large number of restaurants/devices worldwide (high scalability, multi-region).
  4. Handle unreliable connectivity: if a restaurant/device goes offline, it should keep functioning and eventually catch up.
  5. Consider operational corner cases (partial rollout, clock skew, failures).

Describe:

  • Core APIs and data model.
  • How menu versions are published, scheduled, and delivered.
  • How devices sync, cache, and render menus.
  • How you ensure correctness, reliability, and observability at global scale.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...