Skip to main content

System Design Roadmap Learning

🗓️ 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