Welcome to the System Design Notes repository! This repository contains detailed notes, insights, and concepts related to advanced system design topics. The focus is on practical scenarios and real-world examples that build a deeper understanding of system design fundamentals.
The repository is organized into individual topic files. Each file contains comprehensive notes on a specific concept.
| No | Topic | Estimated Time | Link |
|---|---|---|---|
| 1 | Client-Server and Online Processing Overview | 13:00 | - |
| 2 | Functional Requirements for URL Shortening | 26:40 | - |
| 3 | Analyzing Depth versus Breadth in System Design | 11:00 | - |
| 4 | Scaling: Horizontal and Vertical | 18:42 | 4_Horizontal_VerticalScaling.md |
| 5 | What and Why of Load Balancing | 18:46 | 5_What_Why_Load_Balancing.md |
| 6 | Using Cryptographic Hashing in URL Shortening | 27:00 | - |
| 7 | CRUD Operations | 14:06 | 7_CRUD.md |
| 8 | Data Replication | 23:23 | 8_Data_Replication.md |
| 9 | Multi-Leader Replication | 10:05 | 9_MultiLeaderRelication.md |
| 10 | Leaderless Replication: Quorum Reads and Writes | 20:00 | - |
| 11 | CAP Theorem: Consistency, Availability, and Partition Tolerance | 07:00 | - |
| 12 | Distributing Content Effectively Across Networks | 17:00 | - |
| 13 | Data Partitioning through Sharding | 13:00 | - |
| 14 | Repartitioning Data Efficiently (Resharding) | 05:00 | - |
| 15 | API Design Foundations | 5:00:00 | - |
| 16 | Performance Metrics | 22:00 | - |
| 17 | Service Level Objectives and Agreements (SLOs and SLAs) | 06:00 | - |
| 18 | Latency, Response Time, and Bandwidth Considerations | 15:00 | - |
| 19 | Reverse and Forward Proxy Concepts | 10:00 | - |
| 20 | Effective Load Balancing Techniques | 15:00 | - |
| 21 | IP Anycast: Routing and Implementation | 18:00 | - |
| 22 | Key-Value Store Fundamentals | 11:00 | - |
| 23 | Relational Databases and Index Structures | 20:00 | - |
| 24 | SQL Concepts: Normalization and Foreign Key Management | 19:00 | - |
| 25 | ACID Transactions in Database Systems | 14:00 | - |
| 26 | Exploring Big Data and NoSQL Paradigms | 08:00 | - |
| 27 | Implementing LRU Caching for Optimization | 46:00 | - |
| 28 | Handling Reads and Writes with Caching | 22:00 | - |
| 29 | Data Scaling Strategies for URL Shorteners | 33:00 | - |
| 30 | Throughput Optimization for URL Shorteners | 23:00 | - |
| 31 | Basic Counting Techniques for URL Shorteners | 12:00 | - |
| 32 | Advanced Counting Strategies for URL Shorteners | 28:00 | - |
| 33 | Offline Key Generation for URL Shortening | 05:00 | - |
| 34 | Web Server Architecture | 37:00 | - |
| 35 | Consistent Hashing Techniques in System Design | 30:00 | - |
- Browse the topic-specific Markdown files for detailed notes.
- Use the table above to navigate and track your progress.
- Each file covers one topic for easy reference.
Contributions are welcome! Feel free to fork the repository and make improvements. Open an issue if you encounter any problems or want to suggest enhancements.
- Fork the repository.
- Create a branch for your feature or fix.
- Submit a pull request with a clear description of the changes.
This project is licensed under the MIT License. See the LICENSE.md file for details.
If you have any questions or suggestions, feel free to reach out via GitHub issues or discussions.
Happy Learning! 🚀