Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save deveshksrivastava/a7ce7b5d0934de99bb3c6c62437dd3a1 to your computer and use it in GitHub Desktop.

Select an option

Save deveshksrivastava/a7ce7b5d0934de99bb3c6c62437dd3a1 to your computer and use it in GitHub Desktop.
| **#** | **Topic** | **Subtopics** |
|-------|----------------------------------------|----------------------------------------------------------------------|
| 1 | Introduction | Overview of system design concepts |
| 2 | What Are Design Fundamentals? | Basic principles of system design |
| 3 | Client — Server Model | Overview of the client-server architecture |
| 4 | Network Protocols | Understanding the protocols used in networking |
| 5 | Storage | Different types of storage mechanisms |
| 6 | Latency And Throughput | Performance factors in system design |
| 7 | Availability | Strategies for ensuring system uptime |
| 8 | Caching | Techniques to speed up data retrieval |
| 9 | Proxies | How proxies work and their use cases |
| 10 | Load Balancers | Distributing load across multiple servers |
| 11 | Hashing | Techniques for efficient data retrieval and storage |
| 12 | Relational Databases | SQL databases and their structure |
| 13 | Key-Value Stores | NoSQL stores focused on key-value pairs |
| 14 | Specialized Storage Paradigms | Advanced storage systems and paradigms |
| 15 | Replication And Sharding | Techniques for data redundancy and partitioning |
| 16 | Leader Election | Mechanisms for electing a leader in distributed systems |
| 17 | Peer-To-Peer Networks | Networks where each node can act as both client and server |
| 18 | Polling And Streaming | Real-time data transfer methods |
| 19 | Configuration | Managing system configurations |
| 20 | Rate Limiting | Controlling the rate of requests |
| 21 | Logging And Monitoring | Techniques for tracking system behavior and health |
| 22 | Publish/Subscribe Pattern | Communication pattern for event-driven architectures |
| 23 | MapReduce | Distributed computing model for large-scale data processing |
| 24 | Security And HTTPS | Securing communications over the web |
| 25 | API Design | Best practices for designing APIs |
| | **Computer Architecture** | Understanding computer systems' hardware and performance |
| | **Application Architecture** | Design principles for applications and systems |
| | **Design Requirements** | Key considerations and requirements for building scalable systems |
| | **Networking** | Basics of networking in distributed systems |
| | **Networking Basics** | Fundamental concepts in networking |
| | **TCP and UDP** | Transport protocols used for data transfer |
| | **DNS** | Domain Name System, mapping domain names to IP addresses |
| | **APIs** | Application Programming Interfaces |
| | **HTTP** | Hypertext Transfer Protocol for web communication |
| | **WebSockets** | Protocol for full-duplex communication over a single TCP connection |
| | **API Paradigms** | Various API interaction patterns (REST, SOAP, etc.) |
| | **API Design** | Principles for designing effective and scalable APIs |
| | **Caching Basics** | Fundamental caching techniques to optimize performance |
| | **Caching** | Techniques and strategies for caching data |
| | **CDNs** | Content Delivery Networks for efficient delivery of web content |
| | **Proxies** | Understanding the role of proxies in network communication |
| | **Proxies and Load Balancing** | Combining proxies and load balancing for scalability |
| | **Consistent Hashing** | Technique for distributed systems to balance load |
| | **Storage** | Principles and types of data storage |
| | **SQL** | Structured Query Language for relational databases |
| | **NoSQL** | Non-relational databases and their use cases |
| | **Replication and Sharding** | Techniques for data redundancy and partitioning |
| | **CAP Theorem** | Fundamental theorem for distributed databases |
| | **Object Storage** | Systems for storing large unstructured data (e.g., files, images) |
| | **Big Data** | Techniques for handling vast amounts of data |
| | **Message Queues** | Messaging systems for asynchronous communication |
| | **MapReduce** | Distributed computing model for processing large datasets |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment