| 1 |
Rate Limiting |
Cap requests per user/IP/key per window |
M05 |
Now |
| 2 |
Caching |
Store computed results to avoid redoing work |
M09 |
Growth |
| 3 |
Load Balancing |
Spread traffic across several servers |
M09 |
Scale |
| 4 |
Reverse Proxies |
A server in front of your app (TLS, routing, buffering) |
M09 |
Growth |
| 5 |
API Gateways |
One front door for auth, quotas and routing to many services |
M09 |
Scale |
| 6 |
CI/CD |
Every change tested and deployed automatically |
M11 |
Now |
| 7 |
Docker |
Package app + dependencies into a reproducible image |
M11 |
Growth |
| 8 |
Kubernetes |
Orchestrate many containers across many machines |
M11 |
Scale |
| 9 |
Service Discovery |
Services find each other's addresses dynamically |
M11 |
Scale |
| 10 |
Circuit Breakers |
Stop calling a failing dependency for a while |
M07 |
Growth |
| 11 |
Timeouts |
Never wait forever on anything |
M07 |
Now |
| 12 |
Retries |
Try again on transient failure |
M07 |
Now |
| 13 |
Exponential Backoff |
Wait longer between each retry, with jitter |
M07 |
Now |
| 14 |
Idempotency |
Doing it twice has the same effect as once |
M04 |
Now |
| 15 |
Message Queues |
Hand work to a worker via a durable buffer |
M08 |
Growth |
| 16 |
Pub/Sub |
One event, many independent subscribers |
M08 |
Growth |
| 17 |
Event-Driven Architecture |
Services react to facts that happened |
M08 |
Scale |
| 18 |
Distributed Transactions |
One logical change across several systems |
M08 |
Scale |
| 19 |
Saga Pattern |
Multi-step workflow with compensating undo steps |
M08 |
Growth |
| 20 |
Dead Letter Queues |
Park messages that keep failing for inspection |
M07 |
Growth |
| 21 |
Cron Jobs |
Scheduled work |
M08 |
Now |
| 22 |
WebSockets |
Two-way persistent connection |
M08 |
Growth |
| 23 |
Long Polling |
Hold a request open until data arrives |
M08 |
Scale |
| 24 |
Server-Sent Events |
One-way server push stream (LLM streaming) |
M08 |
Growth |
| 25 |
Database Indexing |
Data structure that makes lookups fast |
M03 |
Now |
| 26 |
Query Optimization |
Reading EXPLAIN plans and fixing slow SQL |
M03 |
Growth |
| 27 |
N+1 Queries |
One query per row inside a loop |
M03 |
Now |
| 28 |
Connection Pooling |
Reuse DB connections instead of opening new ones |
M03 |
Now |
| 29 |
Read Replicas |
Copies of the DB that serve reads |
M09 |
Scale |
| 30 |
Sharding |
Split data across many databases by key |
M09 |
Scale |
| 31 |
Partitioning |
Split one big table into parts (often by time) |
M09 |
Growth |
| 32 |
Replication |
Keep copies of data on multiple nodes |
M10 |
Growth |
| 33 |
Leader Election |
Nodes agree on who is in charge |
M10 |
Scale |
| 34 |
CAP Theorem |
During a partition, choose consistency or availability |
M10 |
Growth |
| 35 |
Eventual Consistency |
Copies agree eventually, not instantly |
M10 |
Growth |
| 36 |
Optimistic Locking |
Detect conflicting writes with a version number |
M03 |
Now |
| 37 |
Pessimistic Locking |
Lock the row before changing it |
M03 |
Growth |
| 38 |
Distributed Locks |
A lock shared across machines |
M10 |
Scale |
| 39 |
Race Conditions |
Outcome depends on timing of concurrent actions |
M10 |
Now |
| 40 |
Deadlocks |
Two actors each waiting on the other forever |
M10 |
Growth |
| 41 |
Memory Leaks |
Memory that is never released |
M10 |
Growth |
| 42 |
Garbage Collection |
Runtime reclaiming unused memory (and its pauses) |
M10 |
Scale |
| 43 |
Thread Safety |
Code correct when run concurrently |
M10 |
Growth |
| 44 |
Backpressure |
Slow producers down when consumers cannot keep up |
M07 |
Growth |
| 45 |
Autoscaling |
Add or remove capacity automatically |
M09 |
Scale |
| 46 |
Horizontal Scaling |
More machines |
M09 |
Scale |
| 47 |
Vertical Scaling |
Bigger machine |
M09 |
Growth |
| 48 |
CDN |
Serve static content from near the user |
M09 |
Now |
| 49 |
Edge Caching |
Cache dynamic responses at the CDN |
M09 |
Growth |
| 50 |
Cache Invalidation |
Knowing when cached data is stale |
M09 |
Growth |
| 51 |
Feature Flags |
Turn code paths on/off without deploying |
M11 |
Growth |
| 52 |
Blue-Green Deployment |
Two environments, switch traffic instantly |
M11 |
Scale |
| 53 |
Canary Releases |
Release to a small % first |
M11 |
Scale |
| 54 |
Rolling Deployments |
Replace instances gradually |
M11 |
Growth |
| 55 |
Rollbacks |
Return to the last good version fast |
M11 |
Now |
| 56 |
Health Checks |
Endpoint saying "I am OK" |
M12 |
Now |
| 57 |
Liveness & Readiness Probes |
"Am I alive?" vs "Can I take traffic?" |
M12 |
Growth |
| 58 |
Monitoring |
Watching known signals |
M12 |
Now |
| 59 |
Logging |
Structured records of events |
M12 |
Now |
| 60 |
Distributed Tracing |
Following one request across services |
M12 |
Growth |
| 61 |
Metrics |
Numeric time series (rate, errors, duration) |
M12 |
Growth |
| 62 |
Alerts |
Paging a human when users are hurting |
M12 |
Now |
| 63 |
SLOs |
Target reliability, e.g. 99.9% of requests OK |
M12 |
Growth |
| 64 |
SLIs |
The measured indicator behind an SLO |
M12 |
Growth |
| 65 |
Error Budgets |
Allowed unreliability; spend it on shipping |
M12 |
Scale |
| 66 |
Observability |
Asking new questions of a running system |
M12 |
Growth |
| 67 |
Secrets Management |
Keys never in code, frontend or logs |
M05 |
Now |
| 68 |
IAM |
Who/what may do which action on which resource |
M05 |
Now |
| 69 |
OAuth |
Delegated authorization standard |
M05 |
Now |
| 70 |
JWT Rotation |
Short-lived tokens, rotated signing keys |
M05 |
Growth |
| 71 |
TLS |
Encrypted, authenticated connections |
M02 |
Now |
| 72 |
Encryption at Rest |
Data encrypted on disk/backups |
M05 |
Now |
| 73 |
Encryption in Transit |
Data encrypted on the wire, internal too |
M02 |
Now |
| 74 |
WAF |
Filter malicious HTTP traffic |
M05 |
Growth |
| 75 |
DDoS Protection |
Absorb floods of traffic |
M05 |
Growth |
| 76 |
CORS |
Browser rule for which origins may call your API |
M05 |
Now |
| 77 |
CSRF |
Tricking a logged-in browser into acting |
M05 |
Now |
| 78 |
SQL Injection |
Input executed as SQL |
M05 |
Now |
| 79 |
XSS |
Input executed as script in other users' browsers |
M05 |
Now |
| 80 |
SSRF |
Server tricked into fetching internal URLs |
M05 |
Now |
| 81 |
Database Migrations |
Versioned, scripted schema changes |
M03 |
Now |
| 82 |
Schema Versioning |
Old and new code coexist with the schema |
M03 |
Growth |
| 83 |
Disaster Recovery |
Plan + RPO/RTO for losing a region or provider |
M13 |
Growth |
| 84 |
Backups |
Copies you have proven you can restore |
M13 |
Now |
| 85 |
Failover |
Switching to a standby automatically |
M13 |
Scale |
| 86 |
Multi-Region Deployment |
Running in several geographic regions |
M13 |
Scale |
| 87 |
Chaos Engineering |
Injecting failure on purpose to learn |
M13 |
Scale |
| 88 |
Cost Optimization |
Spend matched to value; spend caps |
M09 |
Now |
| 89 |
Cold Starts |
Latency when a serverless function wakes |
M09 |
Growth |
| 90 |
Serverless Limits |
Timeouts, memory, payload, concurrency caps |
M09 |
Now |
| 91 |
Latency |
Time for one request |
M02 |
Now |
| 92 |
Throughput |
Requests per second the system handles |
M02 |
Growth |
| 93 |
P99 Latency |
The slowest 1% of requests |
M02 |
Growth |
| 94 |
Tail Latency |
Why the slow tail dominates user experience |
M02 |
Growth |
| 95 |
Network Partitions |
Parts of the system cannot talk |
M10 |
Scale |
| 96 |
Clock Skew |
Machines disagree about the time |
M10 |
Scale |
| 97 |
DNS |
Names to addresses; TTLs; propagation |
M02 |
Now |
| 98 |
TCP vs UDP |
Reliable ordered stream vs fast datagrams |
M02 |
Scale |
| 99 |
HTTP/2 & HTTP/3 |
Multiplexing; QUIC over UDP |
M02 |
Scale |
| 100 |
gRPC |
Typed binary RPC over HTTP/2 |
M04 |
Scale |
| 101 |
Webhooks |
Server-to-server callbacks; verify signatures |
M08 |
Now |
| 102 |
API Versioning |
Change APIs without breaking clients |
M04 |
Growth |
| 103 |
Semantic Versioning |
MAJOR.MINOR.PATCH meaning |
M04 |
Growth |
| 104 |
Infrastructure as Code |
Infra defined in versioned files |
M11 |
Growth |
| 105 |
Terraform |
The most common IaC tool (OpenTofu fork) |
M11 |
Scale |
| 106 |
Helm Charts |
Packaged Kubernetes apps |
M11 |
Scale |
| 107 |
Build Caching |
Reuse build outputs to speed CI |
M11 |
Scale |
| 108 |
Dependency Hell |
Conflicting, vulnerable or hallucinated packages |
M11 |
Now |
| 109 |
Production Incidents |
Something is broken for users right now |
M13 |
Now |
| 110 |
On-Call |
Who responds, how fast, with what runbook |
M13 |
Growth |
| 111 |
Postmortems |
Blameless learning after incidents |
M13 |
Growth |