Design Interview 80-20

๐Ÿญ. ๐—ฆ๐—ฐ๐—ฎ๐—น๐—ฎ๐—ฏ๐—น๐—ฒ ๐——๐—ฎ๐˜๐—ฎ ๐—ฆ๐˜๐—ผ๐—ฟ๐—ฎ๐—ด๐—ฒ
โ€ข Relational vs. NoSQL: Know when to use SQL vs. NoSQL databases.
โ€ข Partitioning: Vertical and horizontal partitioning (sharding). Understand trade-offs.
โ€ข Indexing: Covering indexes, primary vs. secondary indexes.
โ€ข Consistency Models: Strong, eventual, causal.

๐Ÿ. ๐‚๐š๐œ๐ก๐ข๐ง๐ 
โ€ข Client-side vs. Server-side Cache: Understand where caching should happen.
โ€ข Caching Strategies: Write-through, write-back, write-around.
โ€ข Distributed Cache: Redis, Memcached.
โ€ข Cache Eviction Policies: LRU, LFU, etc.

๐Ÿ‘. ๐‹๐จ๐š๐ ๐๐š๐ฅ๐š๐ง๐œ๐ข๐ง๐ 
โ€ข Horizontal Scaling: Why and how to horizontally scale services.
โ€ข Load Balancing Techniques: Round-robin, consistent hashing.
โ€ข Reverse Proxy: Understand how to use Nginx, HAProxy.

๐Ÿ’. ๐€๐ฌ๐ฒ๐ง๐œ๐ก๐ซ๐จ๐ง๐จ๐ฎ๐ฌ ๐๐ซ๐จ๐œ๐ž๐ฌ๐ฌ๐ข๐ง๐ 
โ€ข Message Brokers: Kafka, RabbitMQ. When to use queues vs. streams.
โ€ข Event-Driven Architecture: Benefits of decoupling and event sourcing.
โ€ข Task Queues: For delayed jobs or retries.

๐Ÿ“. ๐ƒ๐š๐ญ๐š๐›๐š๐ฌ๐ž ๐‘๐ž๐š๐ ๐š๐ง๐ ๐–๐ซ๐ข๐ญ๐ž ๐’๐œ๐š๐ฅ๐ข๐ง๐ 
โ€ข Read Scaling: Master replication, read replicas.
โ€ข Write Scaling: Challenges with partitioning for writes, leader-election.
โ€ข CAP Theorem: Consistency, Availability, or Partition tolerance may be compromised.

๐Ÿฒ. ๐——๐—ถ๐˜€๐˜๐—ฟ๐—ถ๐—ฏ๐˜‚๐˜๐—ฒ๐—ฑ ๐—ฆ๐˜†๐˜€๐˜๐—ฒ๐—บ๐˜€ ๐—–๐—ผ๐—ป๐—ฐ๐—ฒ๐—ฝ๐˜๐˜€
โ€ข Consensus Algorithms: Paxos, Raft.
โ€ข Conflict Resolution: Last Write Wins, CRDTs, vector clocks for data reconciliation.

๐Ÿณ. ๐—ฅ๐—ฒ๐—น๐—ถ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—ฎ๐—ป๐—ฑ ๐—™๐—ฎ๐—ถ๐—น๐—ผ๐˜ƒ๐—ฒ๐—ฟ
โ€ข Redundancy: Active-passive vs. active-active configurations.
โ€ข Health Checks.
โ€ข Retries and Circuit Breakers: How to protect systems from cascading failures.

๐Ÿด. ๐—–๐——๐—ก๐˜€ (๐—–๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐——๐—ฒ๐—น๐—ถ๐˜ƒ๐—ฒ๐—ฟ๐˜† ๐—ก๐—ฒ๐˜๐˜„๐—ผ๐—ฟ๐—ธ๐˜€)
โ€ข Static Content Delivery: Why use a CDN, how does it work?
โ€ข Caching at the Edge: How CDNs improve latency for end users.

๐Ÿต. ๐—”๐—ฃ๐—œ ๐——๐—ฒ๐˜€๐—ถ๐—ด๐—ป ๐—ฎ๐—ป๐—ฑ ๐—ฅ๐—ฎ๐˜๐—ฒ ๐— ๐—ฎ๐—ป๐—ฎ๐—ด๐—ฒ๐—บ๐—ฒ๐—ป๐˜
โ€ข REST vs. GraphQL: Difference and practical use-cases for each.
โ€ข Pagination and Filtering: Strategies for efficiently fetching data.
โ€ข API Versioning: Best practices for evolving APIs.
โ€ข Throttle Requests: Why rate limiting is essential, algorithms like token bucket, leaky bucket.

๐Ÿญ๐Ÿฌ. ๐—ฆ๐—ฒ๐—ฎ๐—ฟ๐—ฐ๐—ต ๐—ฆ๐˜†๐˜€๐˜๐—ฒ๐—บ๐˜€
โ€ข Indexing: Building and maintaining indexes for fast search.
โ€ข Full-Text Search Engines: ElasticSearch, Azure AI Search.
โ€ข Ranking and Relevance: Basic understanding of how scoring works.

๐Ÿญ๐Ÿญ. ๐— ๐—ผ๐—ป๐—ถ๐˜๐—ผ๐—ฟ๐—ถ๐—ป๐—ด ๐—ฎ๐—ป๐—ฑ ๐—ข๐—ฏ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—ฎ๐—ป๐—ฑ ๐—ฆ๐—ฒ๐—ฐ๐˜‚๐—ฟ๐—ถ๐˜๐˜†
โ€ข Metrics Collection: Prometheus, Grafana.
โ€ข Distributed Tracing: OpenTelemetry, Sentry.
โ€ข Centralized Logging.
โ€ข Authentication and Authorization: OAuth, JWT.
โ€ข Encryption: Data in transit vs. data at rest.

If you master these 11 areas, you’ll be ready for most system design interviews thrown at you.