/learning-system-design

The repository contains the conceptual, theoretical and practical implementation of system design using AWS concepts.

Learning System Design

System Design

The repository contains detailed conceptual as well as practical implimentaion of system design including when to use which one. The further details are as follows:
  • System Design Concepts Include:
    • Scaling (Horizontal and Vertical)
    • Proxies (Load Balancers, API Gateways, Reverse Proxies)
    • Database Data Structure (B-Tree, LSM Tree)
    • Database Replication (Change Data Capture, Replication Lag, Sync vs Async Replication)
    • Fundamental Database Concept (CAP Theorem, ACID)
    • Database System (Relation, Non Relation, Blob)
    • Database for analytics and product decisions (Data Warehouse, Data Lakes)
    • Caching (Server Caching, Client Caching, Distributed Caching)
    • Architecture Patterns (API design, Microservices, Message Queues, Pub Sub Model, Event Driven System, Batch Processing, Stream Processing, Data Pipeline)
    • System Health (Monitoring, Alerting, Metrics)
  • System Design Practical Include:
    • Rate Limiter
    • URL Shortner
    • Notification System
    • News Feed (Instagram, Twitter)
    • Payment System (Paypal, Stripe)
    • Ecommerce Application (Amazon, Flipkart)
    • Realtime Game Leaderboard
    • Stock Exchange (Robinhood)
    • Hotel Reservation System (Expedia, Kayak)
    • Ads Click System (Google Ads)
    • Localtion Service (Google Map)
    • Email Service (Gmail, Yahoo)
    • Chat System (Whatsapp, Facebook Messenger)
    • Video Application (Youtube)
    • Autocomplete System (Google Search)

The directory contains readme.md file which contains the detailed explanation of the system design concepts and practical implimentation along with the necassary resources and references.

Resources