Skip to content

Case study: Proximity service (Yelp nearby)

Design a read-heavy nearby search service: geohash and quadtree spatial indexes that fit in memory on every replica, 9-cell neighbour lookups, and async CDC updates.

35 min9 steps

By the end you can
  • Estimate search QPS, business dataset size and why the entire geo index fits in memory without sharding
  • Explain geohash boundary issues, 9-cell neighbour queries and when to use a quadtree for uneven density
  • Design a multi-tier read path with cell caching and replicated in-memory geo indexes fed asynchronously from the database
  • Predict system behaviour during a hot-cell event, a bad index rollout or background index rebuild slowdowns

Requirements

Nearby businesses

  • Radius/category search; detail views; owner edits

Search p99 <100 ms

  • High read availability; eventual search freshness; immediate detail invalidation

How does a proximity service (Yelp nearby) differ fundamentally from Uber's driver supply index?

Answer this step to continue.