English | HTML | text-based course | 103 Lessons | 427 MB
Learn system design essentials required for designing scalable and high-performance systems.
System Design Fundamentals is an introductory-level course for software engineers and developers new to system design. It teaches the core components, concepts, and mental models needed to design scalable, highly available software systems from the ground up. From understanding the client-server model to exploring how databases and caches are used, the course covers all the system design basics you should know before moving on to more complex topics. As a foundation course, it’s taken before tackling the more advanced “Grokking the System Design Interview”, ensuring that learners have a solid base to build on.
This course uses a clear, beginner-friendly approach with illustrations, analogies, and real-world examples to make each concept easy to grasp. Complex topics like latency and throughput are explained in plain, everyday terms—no heavy jargon or prior system design knowledge needed. This supportive style makes it an ideal way to learn system design for beginners, bridging the gap between theoretical knowledge and practical understanding. By the end, you’ll have a firm grasp of system design fundamentals and the confidence to start designing basic scalable systems or jump into more advanced design challenges.
Table of Contents
1 Introduction to System Design
2 Introduction to Load Balancing
3 Load Balancing Algorithms
4 Uses of Load Balancing
5 Load Balancer Types
6 Stateless vs Stateful Load Balancing
7 High Availability and Fault Tolerance
8 Scalability and Performance
9 Challenges of Load Balancers
10 Introduction to API Gateway
11 Usage of API gateway
12 Advantages and disadvantages of using API gateway
13 Scalability
14 Availability
15 Latency and Performance
16 Concurrency and Coordination
17 Monitoring and Observability
18 Resilience and Error Handling
19 Fault Tolerance vs High Availability
20 HTTP vs HTTPS
21 TCP vs UDP
22 HTTP 10 vs 11 vs 20 vs 30
23 URL vs URI vs URN
24 Introduction to DNS
25 DNS Resolution Process
26 DNS Load Balancing and High Availability
27 Introduction to Caching
28 Why is Caching Important
29 Types of Caching
30 Cache Replacement Policies
31 Cache Invalidation
32 Cache Read Strategies
33 Cache Coherence and Consistency Models
34 Caching Challenges
35 Cache Performance Metrics
36 What is CDN
37 Origin Server vs Edge Server
38 CDN Architecture
39 Push CDN vs Pull CDN
40 Introduction to Data Partitioning
41 Partitioning Methods
42 Data Sharding Techniques
43 Benefits of Data Partitioning
44 Common Problems Associated with Data Partitioning
45 What is a Proxy Server
46 Uses of Proxies
47 VPN vs Proxy Server
48 What is Redundancy
49 What is Replication
50 Replication Methods
51 Data Backup vs Disaster Recovery
52 Introduction to CAP Theorem
53 Components of CAP Theorem
54 Tradeoffs in CAP Theorem
55 Examples of CAP Theorem in Practice
56 Beyond CAP Theorem
57 System Design Tradeoffs in Interviews
58 Introduction to Databases
59 SQL Databases
60 NoSQL Databases
61 SQL vs NoSQL
62 ACID vs BASE Properties
63 RealWorld Examples and Case Studies
64 SQL Normalization and Denormalization
65 InMemory Database vs OnDisk Database
66 Data Replication vs Data Mirroring
67 Database Federation
68 What are Indexes
69 Types of Indexes
70 Introduction to Bloom Filters
71 Benefits & Limitations of Bloom Filters
72 Variants and Extensions of Bloom Filters
73 Applications of Bloom Filters
74 Difference Between LongPolling, WebSockets, and ServerSent Events
75 What is Quorum
76 What is Heartbeat
77 What is Checksum
78 Uses of Checksum
79 What is Leader and Follower Pattern
80 What is Security and Privacy
81 What is Authentication
82 What is Authorization
83 Authentication vs Authorization
84 OAuth vs JWT for Authentication
85 What is Encryption
86 What are DDoS Attacks
87 Introduction to Messaging System
88 Introduction to Kafka
89 Messaging patterns
90 Popular Messaging Queue Systems
91 RabbitMQ vs Kafka vs ActiveMQ
92 Scalability and Performance (2)
93 What is a Distributed File System
94 Architecture of a Distributed File System
95 Key Components of a DFS
96 Batch Processing vs Stream Processing
97 XML vs JSON
98 Synchronous vs Asynchronous Communication
99 Push vs Pull Notification Systems
100 Microservices vs Serverless Architecture
101 Message Queues vs Service Bus
102 Stateful vs Stateless Architecture
103 EventDriven vs Polling Architecture
Resolve the captcha to access the links!
