Polymath Engineer Weekly #64
Back with awesome links
Hello again. I had some busy weeks lately, but here's the content.
Links of the week
From Hacking into the biggest companies in the world…. to stealing the Secrets of the US Military……. to an $18 Million FIFA fraud...
What started out as a group of Kids hacking their Xboxes…Spiraled into the world of crime that lead 5 kids to Prison....This is the story of the Xbox Underground.
Back in the days when the tech industry was not such a bloated farce, distributed systems were respected, feared, and generally avoided - reserved only as the weapon of last resort for particularly gnarly problems. Everything with a distributed system becomes more challenging and time-consuming - development, debugging, deployment, testing, resilience. But I don’t know - maybe it’s all super easy now because toooollling.
There is no standard tooling for microservices-based development - there is no common framework. Working on distributed systems has gotten only marginally easier in 2020s. The Dockers and the Kuberneteses of the world did not magically take away the inherent complexity of a distributed setup.
The most under-appreciated advantage of renting is the optionality it affords you. For starters, you’ve saved yourself the huge cash outlay of a down payment – which can be used to support entrepreneurship, travel, a sabbatical – or just change in general. Just the psychological burden of knowing you have a mortgage to pay is likely to be a big barrier to pursuing these changes. (Too much optionality can also be problematic.)
The consensus protocol used in Xline is not Paxos or Raft, but a new consensus protocol called CURP, which is called “Consistent Unordered Replication Protocol (CURP)”. It was initiated in NSDI 2019’s paper “Exploiting Commutativity For Practical Fast Replication,” which was authored by Seo Jin Park, a PhD student from Stanford, and Prof. John Ousterhout, who is also the authors of Raft algorithm.
Specifying using math, rather than a programming language, has a special magic to it. It forces you to focus on the what rather than the how. It forces you--it shakes you-- out of your comfort zone. And you have to think mathematically.
Over the years I’ve read dozens of articles around scaling and maintaining Postgres databases, and they always understate the impact of PgBouncer on your application. They casually mention unusable features without any exploration, or the numerous ways you can silently break expected query behavior. The advice is just to turn it on. I want it to be clear that as your application scales, PgBouncer is often necessary but isn’t free.
Book of the Week
Do you have any more links our community should read? Feel free to post them on the comments.
Have a nice week. 😉