26.8 · A rate limiter, push versus polling, a flight booking app, a swipe deck, an image browser, a ride-hailing rider app and a photo feed API

Seven more design prompts reported in iOS and mobile loops: limiting request rates, choosing how the client hears about changes, a booking flow with timed seat holds, a card-swiping client that must survive a flaky network, an image browser, a ride-hailing rider app and the API behind a photo feed.

Mental model. For each, name the invariant (never exceed the rate, never double-book, never lose a swipe) and the mechanism that keeps it true on a bad network.

Rates, transports and flows

Limiting load, choosing a transport, and modelling a timed workflow.

  1. Design an API rate limiter, then say how an iOS client should behave under one. Compare token bucket with a fixed window. 26.8.1 · L5
    Reported at Uber (anonymous, unverified). A fixed window counts requests per time slot (3 per 10 seconds) and resets at the boundary: simple, but a burst…
  2. How does the client learn about new data: polling, long polling, WebSocket, server-sent events or push? How do you choose? 26.8.2 · L5
    Reported at Meta (anonymous, unverified) for a feed with pushed posts. Short polling (ask every N seconds) is the simplest and works everywhere, but it spends…
  3. Design the client of a flight booking app: search, seat hold, payment and confirmation. How do you handle a timed hold, double taps and a payment that fails? 26.8.3 · L5
    Reported at Meta (anonymous, unverified). Model the booking as an explicit state machine instead of a set of flags: searching, held (seat and an expiry time)…
  4. Design the client of a Tinder-style swipe app: card prefetching, instant feel, and swipes that must not be lost or duplicated on a bad network. 26.8.4 · L5
    Reported at Uber (anonymous, unverified). The deck is a local queue with a low-water mark: keep the next several cards (and their images, decoded and…
  5. Design an image browsing app (a grid of photos you can open full screen): thumbnails, paging, caching, memory and offline. 26.8.5 · L5
    Reported at Google (anonymous, unverified); it builds on the image pipeline in Q327, so here the focus is the whole app. Start with numbers that drive every…
  6. Design the rider app of a ride-hailing service: requesting, matching, a live driver on the map, trip states and a bad network. 26.8.6 · L5
    Reported for Uber (a search-result summary; the page itself could not be read, so treat it as a typical prompt). Model the trip as a server-driven state…
  7. Design the API behind a photo feed: pagination, response shape, image variants, caching and what the client needs from it. 26.8.7 · L5
    Reported at Uber (anonymous, unverified). Start with the failure that decides the pagination design: offset paging on a changing list. The user has page one…

More in System design & staff+