26.1 · Designing a whole feature: the method, a messenger, an offline reader and a store

A system design loop asks you to design a product, not a view. The answer is not a diagram of boxes but a sequence of decisions: what the user needs, what must stay true, where state lives, and what happens when things fail.

Mental model. Start from user journeys and invariants, then choose where the source of truth lives, how changes flow and how failure looks. Boxes come last.

The method

A repeatable way to approach any mobile system design question.

  1. How do you approach a mobile system design question: what do you clarify, in what order do you design, and what separates a senior from a staff answer? 26.1.1 · L5
    Use the same loop every time, and say it out loud so the interviewer can steer. 1) Clarify the product and scope: who the users are, the two or three core…

Three designs

A messenger, an offline-first reader and a store with checkout.

  1. Design a messaging client: transport, ordering, delivery states, offline sending, media, notifications and multi-device behaviour. 26.1.2 · L5
    Requirements and invariants. One-to-one and group chat, text and media, works offline, shows delivery and read state, notifies when backgrounded, multiple…
  2. Design an offline-first reader app: content model, sync, storage budget, prefetching, reading position and search. 26.1.3 · L5
    Requirements. Browse a catalogue of articles or books, read with no connection, keep reading position and highlights across devices, and download for offline…
  3. Design a shopping app with cart and checkout: catalogue, cart merging, price authority, payment, idempotency and recovery from interruptions. 26.1.4 · L5
    Requirements and invariants. Browse and search a catalogue, keep a cart across sessions and devices, pay securely, and see order status. Invariants: never…

More in System design & staff+