← Back
avinash201199

avinash201199/System-Design-KIT

A curated collection of resources, case studies, tools, and roadmaps to help you go from system design beginner to confidently architecting large-scale distributed systems.

View on GitHub ↗https://www.lets-code.co.in/interview/system-design-interview-questions/ ↗
Stars
190
Forks
35
Watchers
190
Open issues
0
Contributors
1
Language
—
License
MIT License
Default branch
main
Created Sep 25, 2026Updated Sep 25, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

System Design Kit ⚙️

A curated collection of essential resources, case studies, tools, courses, and playbooks to help you master System Design — from designing your first API to architecting distributed systems that scale to millions of users.

GitHub Description: A curated collection of resources, case studies, tools, and roadmaps to help you go from system design beginner to confidently architecting large-scale distributed systems.

PRs Welcome License: MIT


About

System design is the skill that separates a good engineer from a great one.

This is a curated directory of the best system design resources for every stage of your journey — from understanding client-server architecture to designing systems like YouTube, WhatsApp, and Uber at scale. Whether you're a student preparing for FAANG interviews, an engineer leveling up, or an architect designing production systems, you'll find books, courses, case studies, tools, and communities for every level.


Who Is This For?

  • Students — Preparing for SDE interviews at product companies
  • Backend Engineers — Leveling up from writing code to designing systems
  • Senior Engineers — Preparing for Staff / Principal interviews
  • Engineering Managers — Understanding trade-offs in architectural decisions
  • Founders & CTOs — Making the right architectural bets early
  • Anyone who wants to think in systems, not just code

What's Inside?

  • Roadmaps — Step-by-step paths from basics to advanced
  • Foundational Concepts — Networking, protocols, and distributed systems basics
  • Scalability — Horizontal/vertical scaling, load balancing, and caching
  • Databases — SQL vs NoSQL, sharding, replication, and CAP theorem
  • Caching — Strategies, invalidation, CDN, and Redis patterns
  • Messaging & Queues — Kafka, RabbitMQ, and async communication
  • API Design — REST, GraphQL, gRPC, and WebSockets
  • Storage & File Systems — Object storage, blob storage, and CDNs
  • Microservices — Service decomposition, communication, and patterns
  • Security at Scale — Auth, rate limiting, and DDoS protection
  • Reliability & Availability — Fault tolerance, SLAs, and disaster recovery
  • Monitoring & Observability — Metrics, logs, traces, and alerting
  • Real-World Case Studies — How top companies built their systems
  • Interview Prep — Frameworks, templates, and practice problems
  • Books & Courses — The best learning resources
  • Tools — Diagramming, load testing, and architecture tools

📋 Table of Contents

  • Roadmaps
  • Foundational Concepts
  • Scalability
  • Load Balancing
  • Caching
  • Databases
  • Replication & Sharding
  • CAP Theorem & Consistency
  • API Design
  • Messaging & Event Streaming
  • Microservices Architecture
  • Storage & CDN
  • Search Systems
  • Rate Limiting & Throttling
  • Authentication & Authorization at Scale
  • Reliability & Fault Tolerance
  • Monitoring & Observability
  • Distributed Systems Concepts
  • Real-World Case Studies
  • System Design Interview Prep
  • Books
  • Courses & Videos
  • Cheat Sheets & Quick References
  • Diagramming & Architecture Tools
  • GitHub Repositories
  • Engineering Blogs
  • Newsletters & Podcasts
  • Communities & Forums
  • Key Articles & Essays
  • Practice Problems

Roadmaps

  • Roadmap.sh - System Design
  • Roadmap.sh - Software Architect
  • Roadmap.sh - Backend
  • Tech Interview Handbook - System Design
  • System Design Roadmap - GitHub
  • High Scalability Learning Path
  • ByteByteGo System Design Roadmap
  • Distributed Systems Learning Path - MIT

Foundational Concepts

Networking Basics

  • Computer Networking - Khan Academy
  • HTTP & HTTPS Explained
  • HTTP/1.1 vs HTTP/2 vs HTTP/3
  • TCP vs UDP
  • DNS Resolution Explained
  • WebSockets Explained
  • Long Polling vs WebSockets vs SSE
  • IP Addresses, Ports & Firewalls
  • OSI Model Explained
  • gRPC vs REST vs GraphQL

Client-Server Architecture

  • Client-Server Model
  • Monolith vs Microservices
  • Three-Tier Architecture
  • Peer-to-Peer Architecture
  • Serverless Architecture

Proxies

  • Forward Proxy vs Reverse Proxy
  • Nginx as Reverse Proxy
  • HAProxy
  • Envoy Proxy
  • Service Mesh - Istio

Scalability

Core Concepts

  • Scalability for Dummies
  • Horizontal vs Vertical Scaling
  • Stateless vs Stateful Services
  • The 12-Factor App
  • Scale Cube - AKF Partners
  • Back-of-the-Envelope Calculations
  • Numbers Every Engineer Should Know
  • Latency Numbers - Jeff Dean

Performance

  • Web Performance Fundamentals - MDN
  • TTFB, FCP, LCP Explained
  • Connection Pooling
  • Keep-Alive Connections

Load Balancing

Concepts & Algorithms

  • Load Balancing Explained - Nginx
  • Round Robin vs Least Connections vs IP Hash
  • L4 vs L7 Load Balancing
  • Consistent Hashing
  • Consistent Hashing - Tom White
  • Power of Two Choices
  • Session Persistence / Sticky Sessions

Tools & Implementations

  • Nginx
  • HAProxy
  • AWS Elastic Load Balancer
  • GCP Cloud Load Balancing
  • Traefik
  • Envoy

Caching

Concepts & Strategies

  • Caching Strategies - AWS
  • Cache-Aside (Lazy Loading)
  • Write-Through vs Write-Behind vs Write-Around
  • Cache Eviction Policies - LRU, LFU, FIFO
  • Cache Stampede / Thundering Herd
  • Cache Invalidation Strategies
  • Negative Caching
  • Distributed Caching

Tools

  • Redis (Most popular)
  • Redis Data Structures
  • Redis Cluster
  • Memcached
  • Hazelcast
  • Apache Ignite
  • Varnish Cache

CDN

  • What is a CDN? - Cloudflare
  • CDN Caching Strategies
  • Cloudflare
  • AWS CloudFront
  • Fastly
  • Akamai
  • CDN vs Load Balancer

Databases

SQL vs NoSQL

  • SQL vs NoSQL - MongoDB
  • When to Use NoSQL
  • Choosing a Database - AWS
  • Polyglot Persistence

Relational Databases

  • PostgreSQL
  • MySQL
  • ACID Properties
  • Database Indexes
  • B-Tree vs Hash Indexes
  • Query Optimization
  • Database Normalization
  • Transactions & Isolation Levels

NoSQL Databases

  • MongoDB
  • Cassandra
  • DynamoDB - AWS
  • Redis
  • Neo4j (Graph)
  • InfluxDB (Time series)
  • Elasticsearch
  • HBase
  • CouchDB

NewSQL

  • Google Spanner
  • CockroachDB
  • TiDB
  • YugabyteDB
  • VoltDB

Data Warehouses

  • Snowflake
  • BigQuery - Google
  • Redshift - AWS
  • ClickHouse
  • Databricks

Replication & Sharding

Replication

  • Database Replication Explained
  • Master-Slave vs Master-Master Replication
  • Read Replicas
  • Synchronous vs Asynchronous Replication
  • MySQL Replication Guide
  • PostgreSQL Streaming Replication

Sharding

  • Database Sharding - MongoDB
  • Sharding Strategies - Horizontal Partitioning
  • Range vs Hash vs Directory Sharding
  • Resharding & Hotspot Problem
  • Consistent Hashing for Sharding
  • Vitess - MySQL Sharding

Partitioning

  • Horizontal vs Vertical Partitioning
  • Partitioning in PostgreSQL
  • Time-based Partitioning

CAP Theorem & Consistency

Fundamentals

  • CAP Theorem Explained
  • CAP Theorem - Martin Kleppmann
  • PACELC Theorem
  • Eventual Consistency
  • Strong vs Eventual vs Causal Consistency
  • Jepsen Analysis - Distributed Systems Safety

Consensus Algorithms

  • Raft Consensus Algorithm
  • Paxos Simplified
  • Two-Phase Commit (2PC)
  • Saga Pattern for Distributed Transactions
  • Vector Clocks
  • Gossip Protocol

API Design

REST

  • REST API Design Best Practices
  • RESTful API Design - Microsoft
  • HTTP Methods & Status Codes
  • API Versioning Strategies
  • HATEOAS
  • Pagination in REST APIs
  • OpenAPI / Swagger Specification

GraphQL

  • GraphQL Official Docs
  • REST vs GraphQL
  • N+1 Problem in GraphQL
  • GraphQL Persisted Queries
  • DataLoader for Batching

gRPC

  • gRPC Official
  • Protocol Buffers
  • gRPC vs REST - Performance
  • gRPC Streaming
  • gRPC-Gateway

WebSockets & Real-time

  • WebSockets Explained
  • Server-Sent Events (SSE)
  • Long Polling
  • Socket.IO
  • Pusher
  • Ably

API Gateway

  • API Gateway Pattern
  • AWS API Gateway
  • Kong API Gateway
  • Apigee - Google
  • Tyk

Messaging & Event Streaming

Message Queues

  • Message Queue vs Event Streaming
  • RabbitMQ
  • AWS SQS
  • Google Cloud Pub/Sub
  • Azure Service Bus
  • ActiveMQ
  • NATS

Event Streaming

  • Apache Kafka
  • Kafka Architecture
  • Kafka Topics, Partitions, Offsets
  • Kafka vs RabbitMQ
  • Apache Pulsar
  • Amazon Kinesis
  • Confluent Cloud

Patterns

  • Publisher-Subscriber Pattern
  • Event-Driven Architecture
  • Outbox Pattern
  • Dead Letter Queue
  • At-Least-Once vs At-Most-Once vs Exactly-Once Delivery
  • Idempotency in Message Processing

Microservices Architecture

Fundamentals

  • Microservices - Martin Fowler
  • Microservices Patterns - Chris Richardson
  • Monolith to Microservices - Sam Newman
  • Domain-Driven Design Basics
  • Bounded Context
  • Service Decomposition Strategies

Communication

  • Synchronous vs Asynchronous Communication
  • Service Discovery - Client vs Server Side
  • API Gateway Pattern
  • Backend for Frontend (BFF) Pattern
  • Sidecar Pattern
  • Strangler Fig Pattern

Resilience Patterns

  • Circuit Breaker Pattern
  • Bulkhead Pattern
  • Retry Pattern with Exponential Backoff
  • Timeout Pattern
  • Fallback Pattern
  • Resilience4j

Data Patterns

  • Saga Pattern
  • CQRS Pattern
  • Event Sourcing
  • Database per Service
  • Shared Database Anti-Pattern

Storage & CDN

Object Storage

  • AWS S3
  • Google Cloud Storage
  • Azure Blob Storage
  • MinIO (Open source S3-compatible)
  • Cloudflare R2

Blob Storage Design

  • Designing a Blob Storage System - ByteByteGo
  • Pre-signed URLs for Secure File Uploads
  • Chunked File Uploads
  • Deduplication Strategies

Distributed File Systems

  • HDFS - Hadoop
  • GFS - Google File System Paper
  • Ceph
  • GlusterFS

Search Systems

  • Elasticsearch Architecture
  • Inverted Index Explained
  • Apache Solr
  • Meilisearch
  • Typesense
  • Algolia
  • Full Text Search vs Vector Search
  • TF-IDF & BM25 Ranking
  • Designing a Search System - ByteByteGo
  • Typeahead / Autocomplete Design

Rate Limiting & Throttling

Algorithms

  • Token Bucket Algorithm
  • Leaky Bucket Algorithm
  • Fixed Window Counter
  • Sliding Window Log
  • Sliding Window Counter
  • Designing a Rate Limiter - ByteByteGo

Implementations

  • Redis Rate Limiting
  • Nginx Rate Limiting
  • AWS API Gateway Throttling
  • Bucket4j - Java Rate Limiting
  • Resilience4j Rate Limiter

Authentication & Authorization at Scale

Authentication

  • JWT - JSON Web Tokens
  • JWT vs Session Tokens
  • OAuth 2.0 Explained
  • OpenID Connect
  • SAML vs OAuth vs OIDC
  • Single Sign-On (SSO)
  • Multi-Factor Authentication (MFA)
  • Passwordless Authentication

Authorization

  • RBAC vs ABAC
  • Role-Based Access Control (RBAC)
  • Attribute-Based Access Control (ABAC)
  • Zanzibar - Google's Global Auth System
  • OPA - Open Policy Agent

Tools

  • Keycloak
  • Auth0
  • Okta
  • AWS Cognito
  • Firebase Auth
  • Supabase Auth

Reliability & Fault Tolerance

Concepts

  • SLI, SLO, SLA Explained
  • Availability Numbers (9s)
  • MTTR, MTBF, MTTF
  • Fault Tolerance vs High Availability
  • Chaos Engineering
  • Disaster Recovery Planning

Patterns

  • Circuit Breaker
  • Bulkhead
  • Retry with Backoff
  • Health Check Pattern
  • Blue-Green Deployment
  • Canary Deployment
  • Feature Flags

Tools

  • Chaos Monkey - Netflix
  • Gremlin
  • AWS Fault Injection Simulator
  • Litmus - Kubernetes Chaos

Monitoring & Observability

The Three Pillars

  • Metrics, Logs, Traces - Overview
  • OpenTelemetry
  • Observability vs Monitoring

Metrics

  • Prometheus
  • Grafana
  • Datadog
  • New Relic
  • AWS CloudWatch

Logging

  • ELK Stack - Elasticsearch, Logstash, Kibana
  • Loki + Grafana
  • Fluentd
  • Splunk
  • Structured Logging Best Practices

Distributed Tracing

  • Jaeger
  • Zipkin
  • AWS X-Ray
  • Honeycomb
  • Trace Context - W3C

Alerting

  • PagerDuty
  • OpsGenie
  • Alertmanager - Prometheus
  • On-call Best Practices - Google SRE

Distributed Systems Concepts

Core Papers & Concepts

  • Fallacies of Distributed Computing
  • The Google File System Paper
  • Bigtable Paper
  • Dynamo Paper - Amazon
  • MapReduce Paper
  • Spanner Paper - Google
  • Raft Paper

Key Concepts

  • Distributed Transactions
  • Idempotency
  • Distributed Locking
  • Leader Election
  • Split Brain Problem
  • Backpressure
  • Clock Synchronization

Courses

  • MIT 6.824 Distributed Systems
  • Designing Data-Intensive Applications - Book
  • Distributed Systems - Cambridge (Free Notes)
  • Martin Kleppmann's Distributed Systems Course

Real-World Case Studies

Social Media & Communication

  • How WhatsApp Works - Architecture
  • Twitter Timeline Architecture
  • Facebook's TAO - Social Graph
  • Instagram Architecture
  • Discord - Storing Billions of Messages
  • Slack Architecture
  • LinkedIn Architecture

Video & Media

  • Netflix Architecture
  • Netflix CDN - Open Connect
  • YouTube Architecture
  • Spotify Architecture
  • Twitch Architecture

Ride-sharing & Maps

  • Uber Architecture
  • Uber's Geospatial Index - H3
  • Lyft Architecture
  • Google Maps Architecture
  • Ola's Architecture at Scale

E-commerce & Payments

  • Amazon's Dynamo
  • Flipkart Engineering Blog
  • Stripe's Architecture
  • PayPal Scalability
  • Shopify Scaling

Search & Data

  • Google Search Architecture
  • Elasticsearch at Scale
  • Airbnb Architecture
  • DoorDash Engineering
  • Pinterest Architecture

System Design Interview Prep

Frameworks & Approaches

  • RESHADED Framework
  • How to Approach System Design - ByteByteGo
  • System Design Template
  • 4-Step System Design Process
  • Common Mistakes in System Design Interviews

Estimation & Calculations

  • Back-of-the-Envelope Estimation Guide
  • Latency Numbers - Jeff Dean
  • Storage Estimation
  • QPS Estimation
  • Powers of Two Table

Common Problems to Practice

  • Design a URL Shortener (TinyURL / Bit.ly)
  • Design Twitter / X Feed
  • Design WhatsApp / Messenger
  • Design YouTube / Netflix
  • Design Uber / Ola (Ride Sharing)
  • Design Google Drive / Dropbox
  • Design Instagram
  • Design a Search Autocomplete System
  • Design a Web Crawler
  • Design a Notification System
  • Design a Rate Limiter
  • Design a Distributed Cache
  • Design an API Gateway
  • Design a Payment System
  • Design a Ticketing System (BookMyShow)
  • Design a Job Scheduler
  • Design a Live Streaming System
  • Design a Distributed Message Queue
  • Design Google Maps
  • Design a Leaderboard System

Resources for Practice

  • Grokking System Design - Educative
  • ByteByteGo
  • System Design Interview - Alex Xu (Book)
  • Pramp Mock Interviews
  • Exponent System Design Practice
  • interviewing.io
  • System Design Questions - Glassdoor
  • LeetCode System Design Tag

Books

Core System Design Books

  • System Design Interview Vol.1 - Alex Xu (Best for interviews)
  • System Design Interview Vol.2 - Alex Xu & Sahn Lam
  • Designing Data-Intensive Applications - Martin Kleppmann (Best overall)
  • Building Microservices - Sam Newman
  • Microservices Patterns - Chris Richardson

Distributed Systems

  • Distributed Systems - Tanenbaum & Van Steen (Free)
  • Understanding Distributed Systems - Roberto Vitillo
  • Designing Distributed Systems - Brendan Burns
  • Database Internals - Alex Petrov
  • Foundations of Scalable Systems - Ian Gorton

Architecture & Patterns

  • Clean Architecture - Robert C. Martin
  • Software Architecture Patterns - Mark Richards (Free)
  • Patterns of Enterprise Application Architecture - Martin Fowler
  • Release It! - Michael Nygard
  • The Art of Scalability - Abbott & Fisher

SRE & Operations

  • Site Reliability Engineering - Google (Free)
  • The SRE Workbook - Google (Free)
  • Database Reliability Engineering - Haines & Campbell

Courses & Videos

Free Courses & Playlists

  • MIT 6.824 Distributed Systems (Free)
  • System Design by Gaurav Sen (YouTube)
  • ByteByteGo YouTube Channel
  • System Design by Arpit Bhayani (YouTube)
  • Concept && Coding - Shrayansh (YouTube)
  • TechDummies - Narendra (YouTube)
  • CodeKarle (YouTube)
  • System Design by Amazon (YouTube)
  • KOSS System Design (YouTube)

Paid Courses

  • Grokking Modern System Design - Educative
  • ByteByteGo System Design Course
  • System Design Interview Course - Exponent
  • Rocking System Design - Udemy
  • Distributed Systems & Cloud Computing - Udemy

YouTube Channels

  • Gaurav Sen
  • ByteByteGo
  • Arpit Bhayani
  • TechDummies Narendra
  • Concept && Coding
  • CodeKarle
  • Martin Kleppmann
  • InfoQ
  • Hussein Nasser

Cheat Sheets & Quick References

  • System Design Cheat Sheet - GitHub
  • Latency Numbers Every Engineer Should Know
  • Back-of-the-Envelope Estimation Cheat Sheet
  • CAP Theorem Cheat Sheet
  • SQL vs NoSQL Decision Chart
  • Load Balancing Algorithm Summary
  • Caching Strategies Summary
  • Availability Numbers (Nines)
  • Microservices Patterns Map
  • API Design Best Practices - Microsoft
  • Data Consistency Levels
  • Message Delivery Guarantees

Diagramming & Architecture Tools

Diagramming

  • Excalidraw (Best for whiteboard-style)
  • draw.io / diagrams.net
  • Lucidchart
  • Miro
  • Whimsical
  • PlantUML
  • Mermaid.js
  • Structurizr (C4 model)
  • C4 Model

Load Testing

  • Apache JMeter
  • Gatling
  • k6
  • Locust
  • Artillery
  • wrk

Network & API Tools

  • Postman
  • Insomnia
  • Wireshark
  • curl
  • HTTPie

GitHub Repositories

  • System Design Primer - donnemartin (270k+ stars)
  • Awesome System Design
  • System Design Resources - InterviewReady
  • Awesome Scalability
  • Distributed Systems Reading List
  • ByteByteGo Newsletter Code
  • System Design 101 - ByteByteGo
  • Microservices Patterns - Chris Richardson
  • Real World System Design
  • Grokking System Design - Solutions

Engineering Blogs

Must-Read Company Blogs

  • Netflix Tech Blog
  • Uber Engineering
  • Airbnb Engineering
  • Meta Engineering
  • Google Research Blog
  • AWS Architecture Blog
  • LinkedIn Engineering
  • Stripe Engineering
  • Cloudflare Blog
  • Discord Engineering
  • Shopify Engineering
  • Dropbox Tech Blog
  • DoorDash Engineering
  • Pinterest Engineering
  • Twitter Engineering
  • Slack Engineering
  • GitHub Engineering
  • High Scalability (Aggregates case studies)

Newsletters & Podcasts

Newsletters

  • ByteByteGo Newsletter
  • System Design Newsletter - Neo Kim
  • Quastor - System Design
  • Software Design - Arpit Bhayani
  • The Pragmatic Engineer - Gergely Orosz
  • Architecture Notes
  • Level Up Software Engineering
  • Pointer.io

Podcasts

  • Software Engineering Daily
  • The Changelog
  • Distributed - InfoQ Podcast
  • SE Radio
  • Scaling DevTools
  • Kubernetes Podcast

Communities & Forums

  • r/ExperiencedDevs
  • r/softwarearchitecture
  • r/cscareerquestions
  • r/SystemDesign
  • Blind - Tech
  • LeetCode Discuss - System Design
  • High Scalability Community
  • InfoQ Community
  • Dev.to - System Design
  • Hacker News

Key Articles & Essays

Must-Read

  • The Log - Jay Kreps (LinkedIn)
  • You Can't Sacrifice Partition Tolerance - CAP
  • Fallacies of Distributed Computing
  • A Plain English Introduction to CAP Theorem
  • Microservices - Martin Fowler
  • CQRS - Martin Fowler
  • Event Sourcing - Martin Fowler

Architecture Thinking

  • The Twelve-Factor App
  • C4 Model for Software Architecture
  • Evolutionary Architecture - Martin Fowler
  • Cell-Based Architecture - AWS
  • Zero Downtime Deployments
  • The Senior Engineer's Guide to Design Decisions

Practice Problems

Beginner Systems

  • Design a URL Shortener
  • Design a Pastebin
  • Design a Key-Value Store
  • Design a Rate Limiter
  • Design a Cache System

Intermediate Systems

  • Design a Chat Application (WhatsApp)
  • Design a Social Media Feed (Twitter)
  • Design a Photo Sharing App (Instagram)
  • Design a File Storage System (Dropbox)
  • Design a Video Streaming Service (YouTube)
  • Design a Notification System
  • Design a Search Autocomplete

Advanced Systems

  • Design Uber / Ola
  • Design a Distributed Message Queue (Kafka)
  • Design a Distributed Cache (Redis)
  • Design a Web Crawler
  • Design Google Maps
  • Design a Payment System
  • Design a Live Video Streaming System (Twitch)
  • Design an Ad Click Aggregation System
  • Design a Hotel Booking System (MakeMyTrip)
  • Design a Flight Booking System
  • Design a Stock Exchange System
  • Design a Distributed Job Scheduler

🤝 Contributing

We welcome contributions from the community! Here's how you can help:

  1. Add a Resource — Found a useful library, course, or article? Submit a pull request!
  2. Fix Broken Links — Help keep the list current
  3. Improve Descriptions — Make resources easier to understand
  4. Suggest Categories — Help us organize better

Contribution Guidelines

  • Ensure the resource is relevant to Python development
  • Provide a working link
  • Add a brief description if needed
  • Place it in the appropriate category
  • Check for duplicates before submitting

Sponsorship

If you find this repository valuable and want to support its growth:

  • Sponsor this project to help maintain and expand the collection
  • Partner with us to feature high quality tools for founders
  • Reach out for collaborations and ecosystem partnerships

For sponsorship or partnership inquiries, connect via X:
Avinash Singh

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

This repository is maintained by Avinash Singh Special thanks to all contributors who have helped curate and maintain this collection.

💬 Community & Support

  • Star this repo to show your support
  • Share it with fellow founders and entrepreneurs
  • Follow for updates as we add new resources
  • Join the discussion in Issues

Made with ❤️ by Avinash Singh