Instagram System Design

Designing a system like Instagram involves a complex network of components and services.
Below is the overview of the system of Instagram:
Client Interaction: Users interact through mobile or web apps.
Load Balancer: Helps in providing a balance of requests for API gateways.
API Gateways: Gateway to the micro services.
Write Operations: Uploading comments and uploads sent to the App Server, which further validates the request and writes data along with video processing.
Feed Generation Service: Feeds generation and update service for users.
Read Operations: Routes read operations (e.g., view feed) to appropriate service(s).
Metadata Database: Stores user profiles and post metadata.
Caching: Utilises Redis or Memcached for caching, thereby reducing response times and database load.
Search Service (Elastic search): Indexes users and content for quickly returning relevant results.
Blob Storage: Stores user-uploaded media files (e.g., images, videos).
CDN: Caches and serves static content with low latency.
Video Processing: Responsible for transcoding, resizing, and creating thumbnails for all user-uploaded videos.
Activity Feeds: It lets users know about the likes, comments, and interactions.