System Design
Learn the fundamentals of designing scalable, reliable, and efficient systems. Covers distributed systems, microservices, and architectural patterns.
Introduction
Introduction To System Design
Getting started with system design fundamentals
Preliminary System Design Concepts
Core concepts before diving into system design
Non-Functional System Characteristics
Understanding scalability, reliability, and maintainability
Back-of-the-envelope Calculations
Quick estimations for system capacity planning
Building Blocks
DNS
Understanding Domain Name System and how it resolves domain names
Load Balancers
Distributing traffic across multiple servers efficiently
Databases
Partitioning data across multiple databases for scale
Key Value Stores
Understanding key-value storage systems
CDN
Designing Content Delivery Networks for optimal performance
Distributed Messaging Queue
Asynchronous communication patterns with message brokers
Scalability
Understanding vertical and horizontal scaling strategies
Distributed Cache
Strategies for improving performance with caching