A comprehensive knowledge base for learning, understanding, and mastering System Design concepts through notes, diagrams, case studies, and interview preparation.
This repository documents my System Design learning journey and serves as a long-term reference for interview preparation and real-world software architecture.
Rather than being tied to a single course or YouTube playlist, this repository is organized by concepts. The goal is to build a structured knowledge base that grows over time by combining insights from multiple learning resources, including:
- 📺 YouTube playlists
- 📚 Books
- 📝 Blogs & Articles
- 📄 Documentation
- 💼 Real-world system design case studies
- 💡 Personal notes and learnings
- Build strong System Design fundamentals
- Understand scalability and distributed systems
- Learn common architecture patterns
- Prepare for System Design interviews
- Document everything in one organized place
- Create reusable notes for future reference
System-Design/
│
├── README.md
├── ROADMAP.md
├── RESOURCES.md
│
├── Learning_Journal/
│ └── YouTube_Playlists/
│ ├── Coder-Army/
│ └── ...
│
├── Fundamentals/
├── Networking/
├── Databases/
├── Caching/
├── Messaging/
├── Storage/
├── System_Components/
├── Design_Patterns/
├── Case_Studies/
├── Interview_Questions/
│
├── diagrams/
└── assets/
The Learning Journal contains raw notes taken while following different learning resources.
These notes are organized by source and help track my learning progress.
Example:
Learning_Journal/
└── YouTube_Playlists/
└── Coder Army/
├── Lecture_01
├── Lecture_02
└── ...
As concepts become clearer, they are converted into well-structured notes inside their respective topic folders.
This repository will cover (and continue to expand):
- System Design Fundamentals
- Scalability
- Availability
- Reliability
- CAP Theorem
- Load Balancing
- Reverse Proxy
- API Gateway
- CDN
- Caching
- Databases
- SQL vs NoSQL
- Replication
- Sharding
- Consistent Hashing
- Messaging Queues
- Event-Driven Architecture
- Distributed Systems
- Microservices
- Storage Systems
- Authentication & Authorization
- Rate Limiting
- Monitoring & Logging
- Design Patterns
- Real-world Case Studies
- System Design Interview Questions
This repository will include end-to-end system design discussions for applications such as:
- URL Shortener
- YouTube
- Netflix
- Uber
- Twitter/X
- Google Drive
- Notification Service
- Food Delivery System
- Ride Sharing Platform
- Chat Application
Fundamentals
↓
Networking
↓
Databases
↓
Caching
↓
Messaging
↓
Storage
↓
Distributed Systems
↓
Design Patterns
↓
Case Studies
↓
Interview Preparation
The notes in this repository are written in my own words while learning from various resources. They are intended for educational purposes and personal revision. Wherever applicable, the original learning resources are acknowledged in the respective notes.
This repository is primarily maintained as a personal learning resource. Suggestions, corrections, and improvements are always welcome.
If these notes help you in your learning journey, consider giving the repository a ⭐.
Happy Learning! 🚀