https://github.com/joefelx/system-design
Essential System Design topic and notes.
https://github.com/joefelx/system-design
hld lld system-design
Last synced: 2 months ago
JSON representation
Essential System Design topic and notes.
- Host: GitHub
- URL: https://github.com/joefelx/system-design
- Owner: joefelx
- Created: 2025-07-02T16:44:20.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-07-03T07:09:19.000Z (3 months ago)
- Last Synced: 2025-07-03T07:24:41.639Z (3 months ago)
- Topics: hld, lld, system-design
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# System Design Essentials
> These are the essential topics for understanding system design.
---
### **[Low Level Design](./Low%20Level%20Design.md)**---
### **[1. System Design Basics](./System%20Design%20Basics.md)**
* **High-Level Design Approach** —
* Functional vs Non-functional requirements.
* **Latency, Throughput, Availability, Reliability, Consistency, Scalability, Maintainability.**
* **CAP Theorem (Consistency, Availability, Partition Tolerance).**
* **Trade-offs: Speed vs Consistency, Cost vs Scalability.**---
### **2. Load Handling**
* **Load Balancing.**
* (Round Robin, Least Connections, IP Hashing).
* **Reverse Proxy.**
* (Nginx, HAProxy, Envoy)
* **Horizontal vs Vertical Scaling.**
* **Auto-scaling Groups (AWS, GCP).**---
### **3. Data Storage**
* **SQL vs NoSQL (when to pick which).**
* **Relational DB (PostgreSQL, MySQL) Design — Indexing, Joins, Transactions (ACID).**
* **NoSQL (MongoDB, DynamoDB) — Document, Key-Value, Columnar.**
* **Sharding, Replication, Partitioning.**
* **Caching (Redis, Memcached) — Read-heavy optimizations.**---
### **4. Caching Systems**
* **Client-Side, Server-Side, CDN Caching (Cloudflare, Akamai).**
* **Cache Invalidation Strategies (Write-Through, Write-Back, TTL).**
* **Redis vs Memcached differences.**---
### **5. Data Consistency**
* **Eventual Consistency vs Strong Consistency.**
* **Quorum-based Reads/Writes.**
* **Leader Election (Raft, Paxos overview).**---
### **6. Messaging and Asynchronous Systems**
* **Message Queues (RabbitMQ, Kafka, SQS).**
* **Task Queues (Celery, Bull.js).**
* **Pub/Sub Systems — Real-time event streaming (Kafka, Redis Streams).**
* **Retry Mechanisms, Dead Letter Queues.**---
### **7. API & Request Handling**
* **API Gateway (Kong, AWS API Gateway).**
* **Rate Limiting (Token Bucket, Leaky Bucket).**
* **Circuit Breakers, Retry Patterns, Idempotency.**---
### **8. File Storage & Media Handling**
* **Blob Storage (S3, GCS) for files/images/videos.**
* **Presigned URLs.**
* **CDN for static file delivery.**---
### **9. Authentication & Authorization**
* **JWT vs Session-based Auth.**
* **OAuth2.0 / OpenID Connect (Google Login, Facebook Login).**
* **API Key vs OAuth vs Custom Token.**---
### **10. Real-Time Systems**
* **WebSocket vs Long Polling vs Server-Sent Events.**
* **Real-time Chat, Notification Design.**---
### **11. Fault Tolerance & Resiliency**
* **Redundancy, Failover Strategies.**
* **Graceful Degradation.**
* **Health Checks, Heartbeats.**
* **Disaster Recovery.**---
### **12. Observability & Monitoring**
* **Logging (ELK Stack).**
* **Tracing (Jaeger, Zipkin).**
* **Metrics (Prometheus, Grafana).**
* **Alerting Systems.**---
### **13. CDNs & Global Scale Systems**
* **Content Delivery Networks.**
* **Geo-Distributed Systems Challenges.**
* **Latency Optimization across regions.**---
### **14. Designing Real-World Systems (Case Studies)**
* **URL Shortener.**
* **Instagram Feed / Twitter Timeline.**
* **Uber Location Tracking.**
* **YouTube/Netflix Video Streaming.**
* **WhatsApp Messaging System.**---
### **Optional (Advanced) Topics:**
* Consistent Hashing.
* Bloom Filters.
* CRDTs / Conflict Resolution in distributed systems.
* Data Lakes vs Data Warehouses.---