Design a News Aggregator
Understanding the Problem
📰 What is Google News ?
Google News is a digital service that aggregates and displays news articles from thousands of publishers worldwide in a scrollable interface for users to stay updated on current events.
Functional Requirements
Core Requirements
- Users should be able to view an aggregated feed of news articles from thousands of source publishers all over the world
- Users should be able to scroll through the feed "infinitely"
- Users should be able to click on articles and be redirected to the publisher's website to read the full content
Below the line (out of scope):
- Users should be able to customize their feed based on interests
- Users should be able to save articles for later reading
- Users should be able to share articles on social media platforms
Non-Functional Requirements
tip
For a news platform, availability is prioritized over consistency, as users would prefer to see slightly outdated content rather than no content at all.
Pattern: Scaling Reads
News aggregators like Google News showcase extreme scaling reads scenarios with billions of feed requests but relatively few article writes. This demands aggressive caching of regional feeds, and pre-computed article rankings. The key is that news consumption vastly outweighs news creation, making read optimization critical for sub-200ms response times.