Skip to content

This repository contains system-design resources for both low-level and high-level design.

Notifications You must be signed in to change notification settings

sahilshelangia/system-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

System Design Repository

Welcome to the System Design Repository! This repository is a collection of resources, examples, and guides for system design, focusing on both Low-Level Design (LLD) and High-Level Design (HLD).

Table of Contents

Introduction

This repository aims to provide resources to understand both aspects of system design i.e, LLD and HLD, along with super practical examples.

Low-Level Design (LLD)

This repository have detailed content on the following topics.

  • Basics

    • Class Diagram
    • SOLID Principle
  • Design patterns

    • Creational

      • Factory Pattern
      • Abstract Factory
      • Singleton Pattern
      • Builder Pattern
      • Prototype Pattern
    • Structural

      • Decorator Pattern
      • Proxy Pattern
      • Composite Pattern
      • Adapter Pattern
      • Facade Pattern
      • Flyweight Pattern
      • Bridge Pattern
    • Behavioural

      • Interpreter Pattern
      • Visitor Pattern
      • Mediator Pattern
      • Iterator Pattern
      • Command Pattern
      • Memento Pattern
      • Template Method Pattern
      • State Pattern
      • Chain of responsibility
      • Strategy Pattern
      • Observer Pattern
  • Problems (machine coding)

    • Design tic-tac-toe game
    • Design ATM Machine
    • Design splitwise
    • Design traffic light management system
    • Design car rental system
    • Design file system
    • Design chess game
    • Design snake ladder game
    • Design concurrent Data Structure (e.g., Lock-Free Queue)
    • Design parking lot
    • Design elevator system
    • Designing a Database Connection Pool
    • Design logging system
    • Design a compiler or Interpreter
    • Design Vending machine
    • Design movie booking System (eg- Book my show)
    • Design A Browsers history
    • Design simplified version of twitter
    • Design text editor and LRU cache

High-Level Design (HLD)

This repository have detailed content on the following topics.

Basics

  • CAP theorem
  • Envelope Estimation
  • Bloom filters
  • Caching
  • Load balancer
  • Proxy & Reverse Proxy
  • Replication
  • Partitioning
  • Consistent Hashing
  • Rate limiter
  • DNS
  • Understand the scaling of each component
  • Transaction
  • Trouble with distributed system
  • Consistency & Consensus
  • Seven layered architecture
  • JWT
  • Service discovery
  • Clock skewness

Problems

  • Design a distributed key-value store
  • Design unique id generator
  • Design url shortener
  • Design notification system
  • Design a social media feed platform
  • Design chat application like WhatsApp
  • Design a distributed messaging system
  • Design twitter search
  • Design web crawler
  • Design music streaming system
  • Design video streaming system
  • Design ride-sharing system (eg- Uber)
  • Design a recommendation system (eg- Netflix)
  • Design ecommerce platform (eg- Amazon)
  • Design distributed search engine

Recommended books

About me

About

This repository contains system-design resources for both low-level and high-level design.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages