Basic Concepts
An introduction to the core concepts of High-Level Design (HLD) in software engineering, covering system components, scalability, reliability, and trade-offs for interview preparation.
π Fundamentals
π Building Blocks
- APIs
- Content Delivery Network (CDN)
- Proxy vs Reverse Proxy
- Domain Name System (DNS)
- Caching
- Caching Strategies
- Distributed Caching
- API Gateway
- Load Balancing
- Databases Types
- SQL vs NoSQL
- Database Indexes
- Consistency Patterns
- HeartBeats
- Circuit Breaker
- Idempotency
- Database Scaling
- Data Replication
- Data Redundancy
- Database Sharding
- Database Architectures
- Failover
- Bloom Filters
- Message Queues
- WebSockets
- Checksums
- Microservices Guidelines
- Distributed Locking
π System Design Key Concepts
- Scalability
- Availability
- CAP Theorem
- ACID Transactions
- Consistent Hashing
- Rate Limiting
- SPOF
- Fault Tolerance
- Consensus Algorithms
- Gossip Protocol
- Service Discovery
- API Design
- Disaster Recovery
- Distributed Tracing
βοΈ System Design Tradeoffs
- Top 15 Tradeoffs
- Vertical vs Horizontal Scaling
- Concurrency vs Parallelism
- Long Polling vs WebSockets
- Batch vs Stream Processing
- Stateful vs Stateless Design
- Strong vs Eventual Consistency
- Read-Through vs Write-Through Cache
- Push vs Pull Architecture
- REST vs RPC
- Synchronous vs. asynchronous communications
- Latency vs Throughput
πΆ System Design Architectural Patterns
- Client-Server Architecture
- Microservices Architecture
- Serverless Architecture
- Event-Driven Architecture
- Peer-to-Peer (P2P) Architecture
π§© Additional Resources
πΊ YouTube Channels
- ByteByteGo
- Tech Dummies Narendra L
- Gaurav Sen
- codeKarle
- System Design Interview
- sudoCODE
- Success in Tech