I have released the first chapter of the System Design Manual!
“Wait, what? Weren’t you working on a video class?” - I hear you ask. As I was recording the video lectures for the class, I realized I had to write a lot before recording a lecture - recording is the easy part, framing what to say in a way that is easy to understand and correct is the hard part. The more topics I added, the more I had to go back to rephrase some earlier statements in previous lectures to make them feel part of one cohesive story where one topic naturally leads to the next.
Recording the class before having the content ready doesn’t feel right. This is why I decided to take my notes and bundle them in a book that I plan to update as I go. This will allow me to collect early feedback, and improve the material, while giving you early access to it.
The first chapter of the book is about network fundamentals and covers TCP, UDP, TLS, DNS, and RESTful HTTP APIs. Having a solid foundation of the network stack is essential. Even though each network protocol builds up on top of the other, sometimes the abstractions leak. If you don’t know how the stack works under the hood, you will have a hard time troubleshooting why your system is down or degraded for no apparent reason. On top of that, there is a lot you can learn from the design of the core protocols that can be applied to any distributed system, like TCP’s backpressure mechanisms.
If you are interested, you can get a free sample from the book’s homepage. If you buy the book while in pre-release, you will have access to all future updates for free, and you can request a refund within 45 days - no hard feelings.