Pebellslearn by building
RoadmapMatrixCatalogSandboxSign in

System Design

Outline

27 topics and 120 subtopics mapped. This is the ground the track will cover — the lessons aren't written yet.

  1. 01

    Introduction

    2 subtopics
    • What is System Design?
    • How to approach System Design?
  2. 02

    Performance vs Scalability

  3. 03

    Latency vs Throughput

  4. 04

    Availability vs Consistency

    1 subtopic
    • CAP Theorem
  5. 05

    Consistency Patterns

    3 subtopics
    • Weak Consistency
    • Eventual Consistency
    • Strong Consistency
  6. 06

    Availability Patterns

    3 subtopics
    • Fail-Over
    • Replication
    • Availability in Numbers
  7. 07

    Background Jobs

    3 subtopics
    • Event-Driven
    • Schedule Driven
    • Returning Results
  8. 08

    Domain Name System

  9. 09

    Content Delivery Networks

    2 subtopics
    • Push CDNs
    • Pull CDNs
  10. 10

    Load Balancers

    5 subtopics
    • LB vs Reverse Proxy
    • Load Balancing Algorithms
    • Layer 7 Load Balancing
    • Layer 4 Load Balancing
    • Horizontal Scaling
  11. 11

    Application Layer

    2 subtopics
    • Microservices
    • Service Discovery
  12. 12

    Databases

    10 subtopics
    • SQL vs NoSQL
    • Replication
    • Sharding
    • Federation
    • Denormalization
    • SQL Tuning
    • Key-Value Store
    • Document Store
    • Wide Column Store
    • Graph Databases
  13. 13

    Caching

    9 subtopics
    • Refresh Ahead
    • Write-behind
    • Write-through
    • Cache Aside
    • Client Caching
    • CDN Caching
    • Web Server Caching
    • Database Caching
    • Application Caching
  14. 14

    Asynchronism

    3 subtopics
    • Back Pressure
    • Task Queues
    • Message Queues
  15. 15

    Idempotent Operations

  16. 16

    Communication

    7 subtopics
    • HTTP
    • TCP
    • UDP
    • RPC
    • REST
    • gRPC
    • GraphQL
  17. 17

    Performance Antipatterns

    10 subtopics
    • Busy Database
    • Busy Frontend
    • Chatty I/O
    • Extraneous Fetching
    • Improper Instantiation
    • Monolithic Persistence
    • No Caching
    • Noisy Neighbor
    • Retry Storm
    • Synchronous I/O
  18. 18

    Monitoring

    7 subtopics
    • Health Monitoring
    • Availability Monitoring
    • Performance Monitoring
    • Security Monitoring
    • Usage Monitoring
    • Instrumentation
    • Visualization & Alerts
  19. 19

    Cloud Design Patterns

  20. 20

    Messaging

    10 subtopics
    • Sequential Convoy
    • Scheduling Agent Supervisor
    • Queue-Based Load Leveling
    • Publisher/Subscriber
    • Priority Queue
    • Pipes and Filters
    • Competing Consumers
    • Choreography
    • Claim Check
    • Async Request Reply
  21. 21

    Data Management

    8 subtopics
    • Valet Key
    • Static Content Hosting
    • Sharding
    • Materialized View
    • Index Table
    • Event Sourcing
    • CQRS
    • Cache-Aside
  22. 22

    Design & Implementation

    14 subtopics
    • Strangler Fig
    • Static Content Hosting
    • Sidecar
    • Pipes & Filters
    • Leader Election
    • Gateway Routing
    • Gateway Offloading
    • Gateway Aggregation
    • External Config Store
    • Compute Resource Consolidation
    • CQRS
    • Backends for Frontend
    • Anti-Corruption Layer
    • Ambassador
  23. 23

    Reliability Patterns

  24. 24

    Availability

    5 subtopics
    • Deployment Stamps
    • Geodes
    • Health Endpoint Monitoring
    • Queue-Based Load Leveling
    • Throttling
  25. 25

    High Availability

    5 subtopics
    • Deployment Stamps
    • Geodes
    • Health Endpoint Monitoring
    • Bulkhead
    • Circuit Breaker
  26. 26

    Resiliency

    8 subtopics
    • Bulkhead
    • Circuit Breaker
    • Compensating Transaction
    • Health Endpoint Monitoring
    • Leader Election
    • Queue-Based Load Leveling
    • Retry
    • Scheduler Agent Supervisor
  27. 27

    Security

    3 subtopics
    • Federated Identity
    • Gatekeeper
    • Valet Key
System Design — Catalog