Question
Design a friends/family location-sharing service (like 'find my friends') for 200M users, where a user shares live location with a chosen set of contacts and can stop sharing at any time. Requirements: a sharer's location reaches their contacts within seconds; sharing is bidirectional and granular (per-contact, time-limited 'share for 1 hour' modes); revocation is immediate; and historical location is minimized for privacy. Describe the data model for the sharing graph, the real-time delivery, how revocation propagates instantly, and the privacy/retention trade-offs.
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.