High Level Design
1. Follower Service
Graph-Db is used to maintain follower-followee like relationship data.

2. Create a post
Since, Feed is requested by user more frequently, therefore we will update feed of all the follower whenever the user creates a post.
For media uploads, pre-signed url service is used, that provides pre-authenticated url to the user to upload the media directly to Object-Storage, then afterwards, the user will only send the media-url to post-service for creating the post.

3. Read News-Feed
CDN will be used to pull static media.

4. Post-interaction [Likes/comment]
Added an additional notification service to notify the post-owner

For excalidraw file, click here to download