christova  

instagram

#instagram #systemdesign

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.