Communications of the ACM,
Vol. 59 No. 6, Pages 58-61
10.1145/2909466
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.
2 Comments
Wayne Lobb
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
Patrick Helland
Hey, Wayne!
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
Log in to Read the Full Article
Purchase the Article
Log in
Create a Web Account
If you are an ACM member, Communications subscriber, Digital Library subscriber, or use your institution's subscription, please set up a web account to access premium content and site
features. If you are a SIG member or member of the general public, you may set up a web account to comment on free articles and sign up for email alerts.
Wayne Lobb
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