Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip

The Framework proposed in this space (Alex Xu) is applied to propose a design : Getting started - a framework to propose...

On this page.

Table of Contents

Introduction

News feed is the constantly updating list of stories in the middle of the home page. It includes status updates, photos, links, video, etc.

Part 1 - Understand the problem and establish design scope

Accessible via Mobile App or/and Web App ?

Both

Features ?

Publish and See other posts (from other users)

How is sorted the news feed ?

Reverse chronological order

How many friends user can have ?

5000

Traffic volume ?

10 million per day, active users

Contain images, videos or just text ?

All.

Part 2 - High-Level design

2 flows :

  • Feed publishing → user publishes a post, corresponding data is written into cache and DB.

  • Newsfeed building → news feed is built by aggregating friends’ posts in reverse chronological order.

Part 3 - Deep dive design

Flow Feed Publishing

Focus is on Web servers and the fanout service.

Flow Newsfeed Retrieval

Focus is on the CDN and the News Feed Service :

  • Service fetches complete user and post objects from caches.

  • News feed is returned in JSON format back to the client for rendering.

Part 4 - Pros & Cons

  • Need to validate how to scale the DB (Master-Slave replication, Read Replicas, DB Sharding, etc.)

  • How to keep Web Tier Stateless

  • etc…