System Design
News Feed - Inshorts

News Feed - Inshorts

Design a news feed system like Inshorts that provides users with a personalized feed of short news articles on various topics. The system should be able to handle a large number of users and should be able to scale as the number of users grows.

Example:

Suppose we need to build a news feed system like Inshorts for a mobile app with 10 million users. Users should be able to select topics of interest and receive a personalized news feed with short articles that are easy to read on a mobile device.

Functional Requirements:

  • Users should be able to select topics of interest to personalize their news feed.
  • The system should be able to provide a personalized news feed with short articles based on the user's interests.
  • The system should be able to display news articles in a mobile-friendly format.
  • Users should be able to share news articles on social media.
  • The system should be able to handle a large number of concurrent users.
  • The system should be able to scale horizontally to handle larger volumes of users.
  • The system should be fault-tolerant and able to recover from errors.
  • The system should be able to run continuously with minimum downtime.
  • The system should be able to deliver news articles in real-time, with minimal latency.
  • The system should provide strong security measures to protect user data and prevent unauthorized access.

Non-functional Requirements:

  • The system should be able to handle a high volume of news articles without impacting performance.
  • The system should be able to deliver news articles in a timely manner, with a latency of less than 1 second.
  • The system should be able to store a large amount of data, including news articles and user preferences.
  • The system should be able to provide analytics to track user engagement with news articles.

Assumptions:

  • The system assumes that users are authenticated and authorized to use the service.
  • The system assumes that news articles are not confidential and can be stored in a database for analysis and auditing.
  • The system assumes that users are not intentionally sharing false or misleading news articles.

Estimated Usage:

  • The system should be able to handle at least 1 million daily active users.
  • The system should be able to handle at least 10,000 news articles per second.