Evaluation of a Newsfeed System’s Design

Evaluate the newsfeed design with respect to its non-functional requirements.

Fulfill requirements

Our non-functional requirements for the proposed newsfeed system design are scalability, fault tolerance, availability, and low latency. Let’s discuss how the proposed system fulfills these requirements:

  1. Scalability: The proposed system is scalable to handle an ever-increasing number of users. The required resources, including load balancers, web servers, and other relevant servers, are added/removed on demand.

  2. Fault tolerance: The replication of data consisting of users’ metadata, posts, and newsfeed makes the system fault-tolerant. Moreover, the redundant resources are always there to handle the failure of a server or its component. Monitoring service is used to enhance reliability by continuously observing system health, detecting issues early, providing insights for optimization, and assisting in timely incident response.

  3. Availability: The system is highly available by providing redundant servers and replicating data on them. When a user gets disconnected due to some fault in the server, the session is re-created via a load balancer with a different server. Moreover, the data (users metadata, posts, and newsfeeds) is stored on different and redundant database clusters, which provides high availability and durability.

  4. Low latency: We can minimize the system’s latency at various levels by:

    • Geographically distributed servers and the cache associated with them. This way, we bring the service close to users.
    • Using CDNs for frequently accessed newsfeeds and media content.

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.