If you squint hard enough, many of the challenges of distributed computing appear similar to the work done by the great physicists. Dang, those fellows were smart!
Here, I examine some of the most important physics breakthroughs and draw some whimsical parallels to phenomena in the world of computing ... just for fun.
I don't think these matters are actually for fun. I think they are our reality. I see two fundamental challenges in distributed computing: 1) Is my internal representation of your state correct? 2) Has my transaction with you succeeded? Ultimately, we can never always fully know in either case. We can only guard for and handle properly the timeouts and uncertainties that asynchrony presents. Formal methods based on pure logic (TLA+, Rodin, SPIN, Alloy, Verum Dezyne, many others) help us deal methodically and thoroughly with these challenges. Any other kind of approach is ad hoc and WILL fail. Google "amazon tla" or "nasa mars code acm" (both without quotes) for compelling discussions. -Wayne Lobb
Great comments! I do understand that these issues are our reality and it's my goal with this article to make the issues a little easier to understand. Framing the discussion in a "fun" way can sometimes broaden the understanding. Increasingly, the success of our systems depends on thinking about distribution dramatically different than we used to.
Even though I didn't discuss them, I believe there's huge promise in formal methods to ensure correctness especially as the problems get larger and more complex.
Displaying all 2 comments