Skip to content

Architecture Patterns Cheat Sheet

TL;DR

Seven signals in requirements map to seven architecture patterns. Spot the signal, name the pattern, apply the techniques. This cheat sheet is the entire course compressed into decision tables, key numbers, and flowcharts you can internalize the night before your interview.

Signal → Pattern → Key Decision → Pitfall

Every system design question is broadcasting signals. The interviewer describes a system, and buried in the requirements are clues that point you to specific patterns. Your job is to hear the signal, name the pattern, and make the right trade-off.

Signal in Requirements Pattern Key Decision Pitfall
Read-heavy (100:1 ratio) Caching + Read Replicas Cache invalidation strategy Stampede, stale reads
Write-heavy (1M writes/s) Sharding + Batching + LSM DB Partition key choice Hot partitions
Concurrent access to same resource Pessimistic or Optimistic locking Contention level Deadlocks, retry storms
Users need updates without refreshing WebSocket or SSE One-way vs bidirectional Fan-out cost, connection limits
Operation takes >5 seconds Async + Job Queue Progress tracking Dual-write problem
Multiple services must coordinate Saga + Orchestration Compensation logic Pivot transaction, idempotency
Files >10MB Presigned URLs + Chunking Resume support Orphan blobs

This table is the skeleton key. Memorize it. When the interviewer says "users upload 4K videos," your brain should fire: large files → presigned URLs + chunking → need resume support → watch for orphan blobs.

The Numbers That Matter

You don't need to memorize every benchmark. But walking into an interview without rough numbers is like estimating construction costs without knowing the price of concrete.

Storage and Throughput

Component Reads Writes Latency Notes
PostgreSQL 5K–20K QPS 5K–20K TPS 5–50ms (indexed) B-tree indexes, MVCC
Redis 100K–200K ops/sec 100K–200K ops/sec 0.1–1ms Single-threaded, in-memory
Kafka N/A 500K+ msg/sec per broker 2–10ms Append-only log, partitioned
DynamoDB Unlimited (with $$) Unlimited (with $$) <10ms Pay per RCU/WCU

Network and Delivery

Metric Value When It Matters
CDN edge latency 1–5ms Static content, media streaming
Replication lag (async) 10ms–1s Read-after-write consistency
Cross-region latency 50–200ms Multi-region architectures
WebSocket connections per server 50K–100K Chat, live updates, collaboration
S3 durability 99.999999999% (11 nines) File storage, backups

Cache Performance

Cache Hit Ratio Assessment Action
< 80% Poor Wrong key design or too small cache
80–90% Acceptable Review TTLs and eviction policy
90–99% Good Standard production target
> 99% Excellent Static or slowly-changing data

Using Numbers in Interviews

Don't recite numbers unprompted. Use them when making trade-off arguments: "Redis handles 100K+ ops/sec at sub-millisecond latency, so a single instance covers our read load. We don't need to shard the cache — we need to shard the database."

The Baseline Architecture

This architecture handles 80% of system design interview questions. Start here, then modify based on the signals you spot.

Baseline architecture diagram showing Client, CDN, Load Balancer, API Servers, Redis Cache, Primary DB with Read Replicas, and Message Queue with Workers

When to add to this baseline:

Requirement Add This
Global users Multi-region + CDN for static assets
Real-time updates WebSocket gateway between LB and clients
Large file uploads Object storage (S3) + presigned URL flow
High write volume Sharded database, partition by tenant/user
Multi-step transactions Saga orchestrator between API and services
Search Elasticsearch/OpenSearch alongside primary DB

Don't add components you can't justify. Every box on the diagram is a question the interviewer can ask. If you draw Kafka, you'd better be able to explain why a simple Redis queue won't work.

Decision Flowcharts

When you're mid-interview and the requirements are piling up, these three flowcharts cut through the noise.

Flowchart 1: Read Problem or Write Problem?

Read vs write problem decision flowchart for choosing caching, batching, or sharding strategies based on read-write ratio

Flowchart 2: Do Users Need Real-Time Updates?

Real-time updates decision flowchart for choosing between polling, SSE, and WebSocket based on direction and scale requirements

Flowchart 3: Sync or Async?

Sync vs async decision flowchart for choosing synchronous response, async with progress tracking, or fire-and-forget based on operation duration

Pattern Selection by Interview Question Type

Not sure which pattern the question is testing? Here's a shortcut based on the type of system.

System Type Examples Primary Patterns
Social / Feed Instagram, Twitter, News Feed Scaling Reads + Fan-out + CDN
Messaging / Chat WhatsApp, Slack, Discord Push Architecture + Presence + Message Queue
E-commerce / Booking Ticketmaster, Uber, Hotel Booking Concurrency Control + Async + Saga
Media / Storage YouTube, Dropbox, Google Drive Large Files + Async Processing + CDN
Analytics / Monitoring Metrics Dashboard, Ad Clicks, Top K Scaling Writes + Aggregation + Batch
Payments / Financial Payment System, Stock Trading Distributed Workflows + Idempotency + Locking

The Five-Minute Framework

When you sit down in the interview, spend the first five minutes on this:

Minute 1–2: Gather requirements and spot signals.

  • What's the read/write ratio?
  • Do users need real-time updates?
  • What's the data size per object?
  • How many concurrent users?
  • What consistency guarantees matter?

Minute 3: Name your patterns.

"This is a read-heavy system with real-time notifications, so I'll focus on caching with read replicas for the catalog, and WebSocket for live updates."

Minute 4–5: Draw the baseline architecture, modified for your signals.

Start with the baseline diagram above. Add or remove components based on what you identified. Every component you add should map to a signal you spotted.

The Biggest Interview Mistake

Drawing a complex architecture and then being unable to explain why each component exists. Start simple. Add complexity only when requirements demand it. The interviewer would rather see you thoughtfully add a message queue when you identify an async processing need than see you draw Kafka, Redis, Elasticsearch, and a service mesh in your opening diagram.

Quick-Reference: Cache Invalidation Strategies

Because this comes up in nearly every interview.

Strategy How It Works Consistency Use When
Cache-Aside App checks cache, fills on miss Eventual (stale window) Most read-heavy workloads
Read-Through Cache fetches from DB on miss Eventual Same as cache-aside, cleaner code
Write-Through Write to cache and DB together Strong Can't tolerate stale reads
Write-Behind Write to cache, async flush to DB Eventual (risk of loss) Write-heavy, can tolerate loss
TTL-Based Expire after fixed time Eventual (bounded staleness) Simple, predictable invalidation

Quick-Reference: Database Selection

Requirement Choose Avoid
Transactions + joins PostgreSQL / MySQL DynamoDB, Cassandra
Key-value at scale DynamoDB / Redis PostgreSQL at >100K QPS
Time-series data InfluxDB / TimescaleDB Generic RDBMS
Full-text search Elasticsearch / OpenSearch LIKE queries on RDBMS
Graph relationships Neo4j / Neptune Recursive SQL joins
Document storage MongoDB / DynamoDB When you need joins

Quick-Reference: Queue Selection

Requirement Choose Why
Simple task queue Redis (list/stream) or SQS Low overhead, easy setup
Ordering guarantees Kafka (partitioned) Per-partition ordering
Exactly-once semantics Kafka + idempotent consumers Dedup with idempotency keys
Fan-out to many consumers Kafka or SNS+SQS Consumer groups, topic subscriptions
Delayed/scheduled jobs SQS (delay queues) or custom Built-in delay support

Everything on this page came from the seven chapters before it. If any row in any table feels unfamiliar, go back to that chapter. The cheat sheet is for recall, not for learning.