Skip to content

Master system design concepts with clear explanations, interview questions, and fun analogies. Ideal for technical interview prep and building scalable systems.

Notifications You must be signed in to change notification settings

ANSANJAY/System-Design

Repository files navigation

System Design Notes for TPM

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.

📂 Repository Structure

The repository is organized into individual topic files. Each file contains comprehensive notes on a specific concept.

Topics Covered:

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 -

🛠️ How to Use

  • 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.

💡 Contributing

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.

  1. Fork the repository.
  2. Create a branch for your feature or fix.
  3. Submit a pull request with a clear description of the changes.

📑 License

This project is licensed under the MIT License. See the LICENSE.md file for details.


💬 Contact

If you have any questions or suggestions, feel free to reach out via GitHub issues or discussions.

Happy Learning! 🚀

About

Master system design concepts with clear explanations, interview questions, and fun analogies. Ideal for technical interview prep and building scalable systems.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published