The map
- Not started
- In progress
- Done
- Builds on
- 01Inside the machineThe CPU and the memory hierarchy0/2
- 02How data is storedIntegers, floats, text0/3
- 03Running programsCompilers, the OS, concurrency0/3
- 04Between machinesTCP, UDP and a page load0/2
- 05Limits and everyday toolsComplexity, hashing, time0/3
- 06Next: system designSame ideas, at service scale
- Consistent hashingLibrary ↗hash(key) % N spreads keys evenly over N servers until N changes. Consistent hashing keeps most keys where they were when a server joins or leaves.
- Distributed locksLibrary ↗A mutex works inside one machine because both threads share memory and a clock. Across machines you have neither, so locks need leases and fencing tokens.
- BackpressureLibrary ↗TCP's flow control stops a fast sender from overrunning a slow receiver. The backpressure pattern does the same between services.
- Write-ahead logLibrary ↗Databases checksum every log record so a torn or corrupted write is detected on recovery, the checksum idea from the hashing topic at work.
Examples are plain JavaScript you can run on each page; they were checked with Node 22.19 on a Mac. Timing results depend on your machine and will differ from the ones quoted, so read them as ratios, not absolute numbers. The concurrency topic steps through a race condition line by line. Where the Linux path covers something in depth (processes, virtual memory, sockets), the topic points to it.
Where this path leads
- Data structures and algorithms: the ones you actually use →The structures behind every Map, list, index and queue you rely on, what they really cost on real hardware, and how to tell which one a problem needs.
- Linux: what happens under your program →Follow your program from the shell that starts it through system calls, files, memory and sockets to the service manager, limits and namespaces that run it in production, and know which tool answers which question when something goes wrong.