System Design Key Topics
  • Introduction
  • What is a system design interview and why it is important?
  • Basics for System Design Interviews ( Upgraded Video Coming Soon )
  • Sample Application - Code Walkthrough (Demo) - NEW
  • CAP Theorem - (New Video)
  • Handling your DATA
  • Transaction on Data
  • What goes in the Middleware layer ?
  • Building the middleware layer using MicroServices.
  • Building the front end layer (UI)
  • Additional Resources - New
Load Balancing
  • Introduction
  • Where can a load balancer be placed in a system ?
  • Types of Load balancers
  • Load Balancing Strategies and Load Types
Caching
  • Introduction
  • Caching
  • Types of Cache
  • Updating data in cache
  • Cache Eviction
Caching Usage - Building a Feed - Application Demo
  • Introduction
  • Feed Application Using Cache Servers
  • Architecture and Flow of the Sample Application
  • Demo
CDN
  • Introduction
  • What is a CDN ?
  • Advantages and Disadvantages of CDNs
Case Study - Design a scalable Ecommerce Store (including low level design)
  • Design a scalable ecommerce website like Amazon or Walmart.com ?
Case Study - Build a Local Cache (Design, Code and Demo)
  • Introduction
  • What's a LRU Cache ?
  • Building an LRU Cache
  • LRU Cache Code (Java)
  • LRU Cache Code Continued (Java)
  • Can you improve this solution further ?
  • Efficient LRU Cache
  • Efficient LRU Cache Code (Java)
Case Study - Design a Distributed Cache (-- NEW Case Study --)
  • Distributed Cache Design - Part 1
  • Distributed Cache Design - Part 2
  • Distributed Cache Design - Part 3
Case Study - Design a ticketing server for a distributed system.
  • Introduction - Problem Description
  • Digging deep into the problem
  • Functional Requirements
  • Non functional Requirements
  • Approaching the problem with the simplest design first
  • Going deeper into the simpler approaches
  • Problems with the Simple Approach
  • Approaches for a distributed system
  • Approach 1 (also its good and bad points)
  • Approach 1 continued
  • Approach 2 (good and bad points)
  • Approach 2 continued
  • Approach 3 - final approach
Case Study - Design a recommendation Engine (Upgraded Videos in Progress)
  • Introduction - Problem Description
  • Understanding the Problem
  • Why relational db's are not suited for this kind of problem ?
  • What is a recommendation system and its requirements.
  • Requirements
  • HLD
  • Data Ingestion Layer
  • Analytics Engine and Approach 1
  • Market Basket Analysis - Apriori Algorithm
  • Implementation and Code
  • Problem with this Approach
  • Important point for this case study
  • Content Based recommendation
  • Content Based recommendation - implementation
  • Collaborative Filtering
  • Collaborative filtering approach in short
Design an AutoComplete feature like Google Suggest (Upgraded Video in Progress)
  • Introduction
  • Requirements and Assumptions
  • Back of Envelope Calculations
  • HLD
  • Sample Data
  • API Design
  • Building the Rest services of the API
  • Low Level Design
  • More on low level design
  • Storing the TRIE in Cache
  • Storing words using big data technologies and finding the word frequencies
  • Building the TRIE
  • Disadvantages of this Approach