Read a short lesson
Sequenced, not encyclopaedic. Each one opens by telling you what you will be able to do afterwards, and closes with a question that catches you if you skimmed.
A hands-on course
Indexes, replication lag, a schema change that breaks a deploy at 3am — the parts of software that stop being intuitive the moment your data outgrows one machine. You will not read about them here. You will build them, break them, and watch the numbers move.
Here is one, from the first module. Everyone knows “don’t use averages for latency.” Drag the stall rate up and watch why — then raise the calls-per-page and watch a rare problem become the common case.
Dials
What the service does when nothing is in its way.
How much requests differ: cache misses, contention, cold paths.
Requests that hit a pause, a lock, or a retry and take many times longer.
A page is only as fast as its slowest dependency.
fastresponse time · log scaleslow
79% of requests finish faster than the mean. The mean is not a typical request — it is dragged around by the slow ones.
With 6 backend calls per page, 5.9% of page loads wait on at least one call in its service’s slowest 1%. Tail latency at the bottom becomes typical latency at the top.
Sequenced, not encyclopaedic. Each one opens by telling you what you will be able to do afterwards, and closes with a question that catches you if you skimmed.
Tail latency, write amplification, schema compatibility. When a trade-off has a shape, you get a working model of it instead of a paragraph describing the shape.
A hash index. An SSTable merge. A binary encoder that survives a rolling upgrade. In an editor on the page, against tests that run in your browser.
Practice questions where the answer is a judgement call, each with a worked response that shows the reasoning rather than just the verdict.
This course covers similar ground to Martin Kleppmann’sDesigning Data-Intensive Applications, and every module names the chapters to read alongside it. It is not a summary of that book, and it reproduces none of its text — the prose, diagrams, exercises and code here are original. Buy the book. It is the best thing written on this subject, and this course is better with it than without it.
Everything runs in your browser. No accounts, no tracking, no server holding your progress — which also means your progress lives in this browser only.