Skip to Content
Go Realm v1 is released 🎉
System DesignDraft Roadmap

System Design Master Roadmap

This document serves as a structured index for learning System Design. Each section below is a placeholder for future, in-depth content.

Part I: High-Level Design (HLD)

Step 1: Fundamentals

  • Serverless vs Serverful
  • Horizontal vs Vertical Scaling
  • What are threads
  • What are pages
  • How does the internet work?

Step 2: Databases

  • SQL vs NoSQL Databases
  • In-memory Databases
  • Data Replication & Migration
  • Data Partitioning
  • Sharding

Step 3: Consistency vs Availability

  • Data Consistency & its levels
  • Isolation & its levels
  • CAP Theorem

Step 4: Caching

  • What is Caching (Redis, Memcached)
  • Write Policies: write back, write through, write around
  • Replacement Policies: LRU, LFU, Segmented LRU etc
  • Content Delivery Network (CDN)

Step 5: Networking

  • TCP vs UDP
  • What is http(1/2/3) & https
  • Web Sockets
  • WebRTC & video streaming

Step 6: Load Balancers

  • Load Balancing Algorithms
  • Consistent Hashing
  • Proxy & Reverse Proxy
  • Rate Limiting

Step 7: Message Queues

  • Asynchronous Processing (Kafka, RabbitMQ)
  • Publisher-Subscriber Model

Step 8: Monolithic vs Microservices

  • Why Microservices?
  • Concept of single Point of failure
  • Avoiding Cascading Failures
  • Containerization (Docker)
  • Migration to Microservices

Step 9: Monitoring & Logging

  • Logging events & monitoring metrics
  • Anomaly Detection

Step 10: Security

  • Tokens for auth
  • SSO & OAuth
  • Access Control lists & Rule Engines
  • Encryption

Step 11: System Design Tradeoffs

  • Push vs Pull architecture
  • Consistency vs Availability
  • SQL vs NoSQL Databases
  • Memory vs Latency
  • Throughput vs Latency
  • Accuracy vs Latency

Step 12: Practice - HLD Problems

  • youtube
  • twitter
  • whatsapp
  • uber
  • amazon
  • dropbox / google drive
  • netflix
  • instagram
  • zoom
  • booking.com / Airbnb

Part II: Low-Level Design (LLD) / Object-Oriented Design (OOD)

Step 1: Object Oriented Programming

  • Encapsulation
  • Inheritance
  • Polymorphism
  • Abstraction
  • SOLID Principles

Step 2: Design Patterns

  • Creational Patterns (Factory, Singleton, Builder, Prototype)
  • Structural Patterns (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy)
  • Behavioral Patterns (Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor)

Step 3: Consistency & Thread Safety

  • Thread safe injection
  • Locking Mechanisms
  • Producer-Consumer Problem
  • Race conditions & synchronization

Step 4: UML Diagrams

  • Class Diagrams
  • Sequence Diagrams
  • Use Case Diagrams
  • Activity Diagrams

Step 5: APIs & Code Structure

  • API Design
  • Request/Response Object Modeling
  • Versioning & Extensibility
  • Clean Code Principles: DRY, SRP
  • Avoid God classes

Step 6: Practice - LLD Problems

  • Design a Tic-Tac-Toe game
  • Design a Splitwise app
  • Design a Parking Lot
  • Design an Elevator System with multiple lifts
  • Design a Notification System
  • Design a Food Delivery app
  • Design a Movie Ticket Booking System
  • Design a URL Shortener
  • Design a Logging Framework
  • Design a Rate Limiter

This roadmap is a living document. Content for each section will be added in the future.