SwadhyAI Notes
System Design Notes
Explore System Design notes in Swadhyai's Computer Science collection, organized for structured learning and practical revision.
Lessons
- Building blocks (start here)
- What is System Design?
- Why Learn System Design?
- How to Approach System Design
- Trade-offs in System Design
- Interview Framework & Rubric
- Distributed Systems Fundamentals
- System Design for Large-Scale Applications
- Computer Systems Overview
- Operating System Basics
- Memory Management Concepts
- Concurrency and Parallelism Basics
- Threading and Multithreading Models
- Client-Server Model
- Networking Fundamentals
- Network Protocols (layers & TCP/UDP)
- TCP Congestion Control Mechanisms
- HTTP/1.1 vs HTTP/2 vs HTTP/3
- REST API Design
- API Design Principles
- Proxies
- GraphQL
- gRPC
- Realtime Updates (choose a protocol)
- WebSockets
- WebRTC
- Long Polling & SSE
- Scalability Principles
- Horizontal vs Vertical Scaling
- Regionalisation & Edge
- Load Balancing
- Caching
- Redis
- Content Delivery Networks
- Auto-Scaling
- Latency vs Throughput
- Latency Optimization Techniques
- Throughput Optimization Strategies
- SQL vs NoSQL
- Database Indexing
- Index Optimization Methods
- Database Query Optimization
- Storage Engines: WAL, B+ Trees & LSM Trees
- Key-Value Store Internals
- Database Replication
- Database Sharding
- CAP Theorem
- ACID Properties
- Types of Databases
- Columnar Database Concepts
- Document Store Internals
- Graph Database Concepts
- Transactions & Isolation Levels
- Concurrency Control Algorithms
- Blob / Object Storage
- Data Partitioning
- Data Lakes & Warehouses
- File vs Block vs Object Storage
- Data Representation and Storage Concepts
- Distributed File Systems
- Filesystem Internals for System Design
- Message Queues
- Publish-Subscribe
- Event-Driven Architecture
- Stream Processing
- Async vs Sync Communication
- Asynchronous Programming Concepts
- Distributed Job Scheduler
- Batch Processing Algorithms
- Microservices vs Monolith
- Service-Oriented Architecture
- Domain-Driven Design Concepts
- Rate Limiting
- Logging & Monitoring
- Leader Election
- Strangler Fig Pattern
- Sidecar Pattern
- Database per Service
- Availability Concepts
- High Availability
- Timeouts, Retries & Circuit Breakers
- Retries, Deadlines & Jitter
- Redundancy
- Disaster Recovery
- Chaos Engineering
- Stress and Chaos Testing Methods
- Fault Detection and Recovery Techniques
- Graceful Degradation
- Authentication & Authorization
- Encryption (TLS/SSL)
- OAuth & JWT
- DDoS Protection
- API Security Best Practices
- Zero Trust Architecture
- Access Control Models
- Application Security Hardening
- Audit Logging for Security
- Network Security Controls
- Security Models in Distributed Systems
- Threat Modeling for System Design
- Case Study Playbook
- Realistic System Design Case Studies
- Design URL Shortener
- Design Social Microblog Feed
- Design Chat System
- Design Video Streaming
- Design File Storage
- Design Notification System
- Design Photo/Video Social Feed
- Design Ride Matching
- Design Web Search
- Design E-Commerce Marketplace
- Design Flash Sale (HLD)
- Design Distributed Rate Limiter
- Design Web Crawler
- Design Typeahead/Autocomplete
- Design Text Snippet Sharing
- Design Maps & Navigation
- Design Ticket Booking
- Design Payment System
- Design News Feed
- Design Distributed Cache
- Design Key-Value Store
- Design Food Delivery
- Design IoT Backend
- Design Recommendation System
- Design High-Frequency Trading
- Design Real-Time Analytics
- Design Scalable Web Application
- Algorithms Overview
- Consensus Algorithms
- Quorum Consensus
- Consistent Hashing
- Gossip Protocol
- Bloom Filters
- B-Trees and Variants
- Log-Structured Merge Trees
- Skip Lists
- Merkle Trees
- Deadlock Detection and Avoidance
- Vector Clocks & Timestamps
- Conflict-Free Replicated Data Types (CRDTs)
- Unique ID Generation
- Proximity Search
- Distributed Hash Tables
- Resource Allocation Algorithms
- Compression Algorithms for Systems
- API Gateway
- Service Discovery
- Distributed Transactions
- Distributed Locking
- Idempotency
- Back-of-the-Envelope Estimation
- Circuit Breaker Pattern
- CQRS Pattern
- Consistency Models
- Eventual Consistency
- DNS Deep Dive
- Saga Pattern
- Heartbeat Mechanism
- Checksums & Data Integrity
- Connection Pooling
- Database Connection Patterns
- SLI, SLO, SLA & Error Budgets
- Backpressure & Admission Control
- CDC, Outbox & Inbox Patterns
- Event Sourcing & Projection Rebuilds
- Data Modeling & Schema Evolution
- Multi-Tenancy & Noisy-Neighbor Isolation
- Secrets & Workload Identity
- OpenTelemetry, Sampling & Cardinality
- Distributed System Testing
- Multi-Region Data & Conflict Resolution
- Cost Engineering & Capacity Economics
- API Compatibility & Consumer Contracts
- Cloud Computing Models
- Cloud Infrastructure Management Tools
- Containerization Concepts
- Load Testing Techniques
- Performance Benchmarking Tools
- Container Orchestration Tools
- Virtualization Technologies
- Observability Concepts
- Performance Profiling Methods
- Debugging Tools for Distributed Systems
- API Testing Tools
- Build and Deployment Automation Tools
- Version Control for Large Projects