🗓️ Phase 1: Fundamentals of System Design (Week 1–2)
Introduction to System Design
What is System Design?: Process of defining architecture, components, modules, and interfaces of a system.
High-Level Design (HLD) vs. Low-Level Design (LLD): HLD focuses on system architecture, components, and data flow; LLD deals with classes, modules, methods.
Interview expectations: Focus on scalability, availability, consistency, bottlenecks, trade-offs, and component interactions.
Networking Basics
IP, DNS, Load Balancer: Understand how routing works, domain resolution, and request distribution.
HTTP vs. HTTPS: Protocols for communication; HTTPS adds encryption (TLS).
TCP vs. UDP: TCP is reliable and connection-oriented; UDP is faster, connectionless.
WebSockets & Long Polling: For real-time bidirectional communication.
Databases
SQL vs. NoSQL: Structured vs. unstructured; relational vs. document/graph.
ER modeling: For relational database schema design.
CAP Theorem: Trade-off between Consistency, Availability, Partition Tolerance.
ACID vs. BASE: Transaction integrity vs. eventual consistency.
Indexing, Sharding, Partitioning: Techniques for performance and scalability.
Replication: Master-slave and master-master replication strategies for availability.
Caching
Purpose: Reduce latency and database load.
Tech: Redis, Memcached.
Cache Invalidation: Strategies like LRU, LFU, TTL.
Write Strategies: Write-through, write-around, write-back.
Load Balancing
Scaling: Horizontal (more machines) vs. vertical (more powerful machines).
Algorithms: Round-robin, least connections, IP hashing.
Health Checks, Sticky Sessions: Ensure routing to healthy instances and session affinity.
🗓️ Phase 2: Core Concepts & Components (Week 3–4)
Message Queues & Pub/Sub
Tools: Kafka, RabbitMQ, SQS.
Use Cases: Decouple components, async processing.
Concepts: DLQs, retries, idempotency, exactly-once semantics.
Data Storage Architectures
Blob Storage: S3, GCS for files, images, videos.
Columnar vs. Row DBs: Columnar for analytics, row-based for transactional data.
Time-Series DBs: InfluxDB, Prometheus.
Graph DBs: Neo4j for social networks, relationships.
Consistency & Availability
Models: Strong, eventual, causal consistency.
Mechanisms: Quorum reads/writes, leader election.
Protocols: Paxos and Raft for consensus in distributed systems.
Rate Limiting & Throttling
Techniques: Token Bucket, Leaky Bucket.
Purpose: Prevent abuse, ensure fair resource use.
API Gateways: Manage, throttle, and secure APIs.
Monitoring & Logging
Metrics: Prometheus + Grafana.
Logs: ELK Stack (Elasticsearch, Logstash, Kibana).
Traces: Distributed tracing (e.g., Jaeger, OpenTelemetry).
🗓️ Phase 3: Distributed Systems & Scalability (Week 5–6)
Microservices Architecture
Components: Service registry, API Gateway, service discovery.
Resilience: Circuit Breaker (Hystrix), retries, backoff.
Service Mesh: Istio, Linkerd for observability and routing.
Content Delivery Networks (CDNs)
Providers: Cloudflare, Akamai.
Benefits: Edge caching, low latency, high availability.
Database Sharding
Types: Hash-based, range-based, geo-based.
Challenges: Hotspots, resharding, data rebalancing.
Geo-Distributed Systems
Load Balancing: Across regions.
Data Locality: Reduce latency by placing data close to users.
Consistency: Conflict resolution, CRDTs, version vectors.
Authentication & Authorization
AuthN: OAuth, JWT, OpenID Connect.
AuthZ: Role-based, policy-based access control.
Sessions: API keys, tokens, refresh mechanisms.
🗓️ Phase 4: Practice with Real Systems (Week 7–8)
Common System Designs
URL Shortener: Hashing, DB schema, redirect service, rate limit.
Pastebin: Content storage, access control, expiry.
Rate Limiter: Sliding window, token bucket algorithms.
Chat App: WebSocket, message queues, delivery guarantee.
File Storage: Chunking, metadata, deduplication.
Feed System: Pull vs. push, fan-out, ranking algorithm.
Video Streaming: Chunking, CDN, encoding.
Search Engine: Crawling, indexing, ranking, inverted index.
Rideshare (Uber): Geohash, matching algorithm, location tracking.
E-Commerce: Cart, checkout, inventory, catalog.
Trade-Offs and Bottlenecks
Latency vs. Throughput
Read-heavy vs. Write-heavy systems
Cost vs. Performance
🗓️ Phase 5: Interview Preparation (Week 9+)
Mock Interviews
Platforms: Pramp, Exponent, peer practice.
Design Templates
5-step approach: Requirements → APIs → DB Schema → Component Design → Bottlenecks & Trade-offs.
Evolving Patterns
Serverless Architecture: AWS Lambda, cold starts, stateless logic.
Edge Computing: Lower latency, edge caches.
Event-Driven Design: Event sourcing, CQRS, Kafka.
Domain-Driven Design (DDD): Bounded contexts, aggregates, Ubiquitous Language.
Comments
Post a Comment