The Facebook News Feed is the central feature of Facebook where users see a personalized stream of posts, photos, videos, and updates shared by their friends, pages they follow, and recommended content.
The feed is continuously updated and ranked to show the most relevant content first, rather than displaying posts in simple chronological order.
Building such a system that delivers this experience to 100 million+ daily active users (DAUs) is anything but simple.
It brings up several complex challenges like:
In this chapter, we’ll start with a basic version of a news feed system and evolve it step by step into a robust, scalable and reliable distributed architecture.
Let’s start by clarifying the requirements.