Design of Instagram
Explore the foundational architecture of Instagram, starting with the high-level design. Define the necessary REST APIs for user actions like posting and following. Learn how to establish a robust storage schema and justify the database choice based on relational data needs.
High-level design
The system must support uploading, viewing, and searching media. Additionally, users can follow one another. This requires a robust storage layer to persist media and a retrieval mechanism to fetch data on demand.
API design
We will implement REST APIs for the following features:
Post photos and videos
Follow and unfollow users
Like or dislike posts
Search photos and videos
Generate a news feed
All calls require a userID to identify the requester. We will focus on unique parameters for each endpoint below.