Scenario
Design a News Aggregator Service similar to Google News. The system aggregates articles from many publishers and shows users:
-
Top Stories
(global, same for everyone)
-
Personalized news
based on user subscriptions
When a user clicks a story, the service redirects the user to the publisher’s original article.
Functional requirements
-
Users can
subscribe to Topics
(e.g., Sports, AI, Politics).
-
Users can
subscribe to Publishers
(e.g., NYT, ESPN).
-
The system provides a
general “Top Stories”
feed for everyone.
-
The system provides a
personalized feed
based on subscriptions.
-
Clicking a story
redirects
to the publisher site.
Non-functional requirements (clarify in interview)
-
Low latency for feed reads (e.g., p95 < 200 ms)
-
High availability
-
Freshness (new articles show up quickly)
-
Handle traffic spikes ("celebrity" publishers or breaking news)
Follow-ups
-
Discuss
Push vs Pull
approaches for feed generation.
-
How do you handle the
celebrity problem
(a few publishers/topics dominate traffic)?
-
How would you
detect
that a publisher is “celebrity” (hot/high-traffic) in near real-time?