Issue #92
Curated list of blogs, videos, papers, podcasts on programming and distributed systems.
Imagine there's no heaven
It's easy if you try
No hell below us
Above us only sky
Imagine all the people living for today— John Lennon
Posts
Building a more accurate time service at Facebook scale
We need to sync all the servers across many data centers with sub-millisecond precision. For that we tested chrony, a modern NTP server implementation with interesting features. During testing, we found that chrony is significantly more accurate and scalable than the previously used service, ntpd, which made it an easy decision for us to replace ntpd in our infrastructure. - #engineering #fb
Getting a program right, in nine episodes
I have always thought that the inevitable Dijkstra quote about testing — that it can only show the presence of errors, not their absence [2] — which everyone seems to take as an indictment and dismissal of testing (and which its author probably intended that way) is actually a fantastic advertisement for testing: a way to find bugs? Yes! Great! Where do I get it? But that is not the same as verifying the software, which means attempting to ascertain that it has no bugs. - #bertrandmeyer
From Zero to Hero with Kafka Connect
This talk will discuss the key design concepts within Kafka Connect and the pros and cons of standalone vs distributed deployment modes. - #rmoff #talks
Distributed architecture concepts I learned while building a large payments system
I am summarizing some of the concepts that I have found essential to learn and apply when building a large scale, highly available and distributed system: the payments system that powers Uber. This is a system with a load of up to thousands of requests per second, where critical payments functionality needs to work correctly, even if parts of the system are down. - #blog #pragmaticengineer
Let’s go through the entire Tailscale system from bottom to top, the same way we built it (but skipping some zigzags we took along the way). With this information, you should be able to build your own Tailscale replacement. - #tailscale #blog
Please don't write your documentation in Markdown
Markdown cannot carry data. There’s no way to imbue properties into text using markdown. Good documentation is all about the semantic markup. A “definition” is not just a different formatting or like. - #buttondown
The Hardest Program I've Ever Written
It reads in a string and writes out a string. The only difference between the input and output strings is that it modifies some of the whitespace characters. I’m talking, of course, about an automated code formatter. - #stuffwithstuff #journal
How are Unix pipes implemented?
How pipes are implemented the Unix kernel. - #toroid
HOW I BECAME A BETTER PROGRAMMER
I thought it would be worthwhile to write down my "mental model" for how I have approached programming over the years. - #jlongster
Paper
Understanding Replication in Databases and Distributed Systems
In this paper, we provide an abstract and “neutral” framework to compare replication techniquesfrom both communities. The framework has been designed to emphasize the role played by different mechanisms and to facilitate comparisons. The paper describes the replication techniques used in both communities, compares them, and points out ways in which they can be integrated to arrive to better, more robust replication protocols. - #cselabs #umn
Videos
Joe Armstrong - K things I know about building Resilient Reactive Systems
A Tour Through the Distributed System Zoo