Question
Design the proximity-matching backend for a dating app: a user sees nearby candidate profiles filtered by distance, age, gender preference, and other criteria, ranked by a relevance score. Users move (commuting, traveling) so their location changes; the candidate pool is ~50M profiles; queries must return in <150ms; and exact locations must NOT be exposed (showing '2 miles away' is fine, leaking precise coordinates is a safety problem). Describe the spatial index combined with multi-attribute filtering, how you protect exact location, and the freshness trade-off as users move.
Clarify scale and constraints first. Propose a clean component breakdown, then go deep on the hard parts — data model, bottlenecks, consistency, failure modes — and name the trade-offs you are making.