Grokking System Design Fundamentals
Learn system design essentials required for designing scalable and high-performance systems.
Course Overview
Grokking System Design Fundamentals is designed to equip software engineers with the essential knowledge and skills required to design large complex systems. This course covers a wide range of key concepts, including caching, load balancing, data partitioning, proxy servers, and more, that are crucial for designing efficient, scalable, and reliable distributed systems. By enrolling in this course, you will gain a solid understanding of the core principles behind designing large-scale systems, as well as practical strategies for tackling complex system design problems.
Upon completion of this course, you will be well-prepared to tackle system design interviews with confidence and demonstrate your ability to design and optimize large-scale distributed systems. Whether you are an experienced software engineer looking to sharpen your system design skills or a new engineer seeking a solid foundation in distributed systems, this course will provide you with the knowledge and tools necessary to succeed in today’s competitive job market.
Course Contents
1.System Design Fundamentals
- Introduction to System Design
2.Load Balancing
- Introduction to Load Balancing
- Load Balancing Algorithms
- Uses of Load Balancing
- Load Balancer Types
- Stateless vs. Stateful Load Balancing
- High Availability and Fault Tolerance
- Scalability and Performance
- Challenges of Load Balancers
3.API Gateway
- Introduction to API Gateway
- Usage of API gateway
- Advantages and disadvantages of using API gateway
4.Key Characteristics of Distributed Systems
- Scalability
- Availability
- Latency and Performance
- Concurrency and Coordination
- Monitoring and Observability
- Resilience and Error Handling
- Fault Tolerance vs. High Availability
5.Network Essentials
- HTTP vs. HTTPS
- TCP vs. UDP
- HTTP: 1.0 vs. 1.1 vs 2.0 vs. 3.0
- URL vs. URI vs. URN
6.Domain Name System (DNS)
- Introduction to DNS
- DNS Resolution Process
- DNS Load Balancing and High Availability
7.Caching
- Introduction to Caching
- Why is Caching Important?
- Types of Caching
- Cache Replacement Policies
- Cache Invalidation
- Cache Read Strategies
- Cache Coherence and Consistency Models
- Caching Challenges
- Cache Performance Metrics
8.CDN
- What is CDN?
- Origin Server vs. Edge Server
- CDN Architecture
- Push CDN vs. Pull CDN
9.Data Partitioning
- Introduction to Data Partitioning
- Partitioning Methods
- Data Sharding Techniques
- Benefits of Data Partitioning
- Common Problems Associated with Data Partitioning
10.Proxies
- What is a Proxy Server?
- Uses of Proxies
- VPN vs. Proxy Server
11.Redundancy and Replication
- What is Redundancy?
- What is Replication?
- Replication Methods
- Data Backup vs. Disaster Recovery
12.CAP & PACELC Theorems
- Introduction to CAP Theorem
- Components of CAP Theorem
- Trade-offs in Distributed Systems
- Examples of CAP Theorem in Practice
- Beyond CAP Theorem
13.Databases (SQL vs. NoSQL)
- Introduction to Databases
- SQL Databases
- NoSQL Databases
- SQL vs. NoSQL
- ACID vs BASE Properties
- Real-World Examples and Case Studies
- SQL Normalization and Denormalization
- In-Memory Database vs. On-Disk Database
- Data Replication vs. Data Mirroring
- Database Federation
14.Indexes
- What are Indexes?
- Types of Indexes
15.Bloom Filters
- Introduction to Bloom Filters
- How Bloom Filters Work
- Benefits & Limitations of Bloom Filters
- Variants and Extensions of Bloom Filters
- Applications of Bloom Filters
16.Long-Polling vs. WebSockets vs. Server-Sent Events
- Difference Between Long-Polling, WebSockets, and Server-Sent Events
17.Quorum
- What is Quorum?
18.Heartbeat
- What is Heartbeat?
19.Checksum
- What is Checksum?
- Uses of Checksum
20.Leader and Follower
- What is Leader and Follower Pattern?
21.Security
- What is Security and Privacy?
- What is Authentication?
- What is Authorization?
- Authentication vs. Authorization
- OAuth vs. JWT for Authentication
- What is Encryption?
- What are DDoS Attacks?
22.Distributed Messaging System
- Introduction to Messaging System
- Introduction to Kafka
- Messaging patterns
- Popular Messaging Queue Systems
- RabbitMQ vs. Kafka vs. ActiveMQ
- Scalability and Performance
23.Distributed File Systems
- What is a Distributed File System?
- Architecture of a Distributed File System
- Key Components of a DFS
24.Misc Concepts
- Batch Processing vs. Stream Processing
- XML vs. JSON
- Synchronous vs. Asynchronous Communication
- Push vs. Pull Notification Systems
- Microservices vs. Serverless Architecture
- Message Queues vs. Service Bus
- Stateful vs. Stateless Architecture
- Event-Driven vs. Polling Architecture
25.Final Quiz
- Quiz
User Reviews
Be the first to review “Grokking System Design Fundamentals”
Original price was: ₹8,144.00.₹3,158.00Current price is: ₹3,158.00.
There are no reviews yet.