Mastering
SYSTEM DESIGN
From Low-Level to High-Level Solutions
Detailed
Course Syllabus
CONTENTS
Basics of Low Level Design
Introduction to Object-Oriented Programming
- Class & Objects, Encapsulation, Inheritance, Abstraction, Polymorphism
- Operator overloading, Association, Aggregation, and Composition
- Class diagram as a Visual Tool
- Procedural vs OO Programming
Understanding Constructors
Default and Parameterized Constructor
Copy Constructor
this Keyword and Operations
What are UML Diagrams & Types
Introduction to UML & Object Diagram
Activity Diagram, Sequence Diagram
State Diagram
Learning Core Design Principle
SOLID & GRASP
DRY & KISS
Advance LLD & Use Cases
What are SOLID principles?
- Single Responsibility & Open/Closed Principle
- Liskov Substitution & Interface Segregation Principle
- Dependency Inversion
Understanding various Design Patterns
Strategy Pattern
Observer Pattern
Factory Pattern
Abstract Factory Pattern
Singleton Pattern
Command Pattern
Proxy Pattern
Bridge Pattern
Template method Pattern
Composite Pattern
Iterator Pattern
CONTENTS
Case Studies & Contests
Movie Ticket Booking System
Airline Booking System
More Case Studies will be covered in Live Class
High Level Design - Basics
Introduction to System Design
System Design Basics
Zero to Infinity Intro
Client Server Architecture
System Design Components - Domain Name System
Introduction to DNS
Request Routing
DNS Cache
DNS in Action: Route53
System Design Components - Load Balancer
Introduction and Types of Load Balancers
Scaling Load Balancers
Load Balancing Algorithms
System Design Components - Scaling
Introduction to Scaling
Types of Scaling
Exploring Database Architecture
Use of Databases
- High level introduction to databases
- Relational Databases
- Non Relational Databases
- Comparing Relational and Non Relational Databases
Database Replication
Introduction to Database Replication
Types of Replication
Multi Leader Replication Topology
Leaderless Replication Topology
CONTENTS
Database Sharding
Introduction - Database Sharding
Sharding Strategies
Rebalancing
Consistent Hashing
Production Implementations
Database Indexing
Introduction and Types of Indexes
Advantages
B+ Tree
Internal working of B tree
Explain Plan
Advance High Level Design
Queueing Systems
- Introduction to Queueing Systems
- Issues and Types of Message Brokers
- Message Brokers in Action: SQS + SNS
Caching
Introduction- Caching
Cache types
Cache Invalidation
Cache Eviction Policy
System Design Framework
System Design Framework
Framework and Requirement Gathering
High Level Design
Back of the envelope estimates
Detail Design and Wrap Up
Design Problems
Design a Rate Limiter
Designing Object Store
Designing twitter
Design a tiny URL generator
More Design Problems will be covered in the Live Session