Recently, I was about to tell a joke that started like this:
“Two guys walk into a bar, the first one says… “
Someone went all anti-climactic on the storyteller (me), stopping him (me), asking: how do you know which one is the first one?
He was not, at all, trained in mathematics. He does not know that, when order is not important, order can, and often must, be imposed.
I did not bother to explain this, I just rephrased:
“Two guys walk into a bar, one of them says… “
I am a good storyteller, after all.
This got me thinking:
A random first story
I have talked about how, back in 2012-2013, I had had implemented, from scratch, a mechanism for single execution of a mission critical operation. This was before blockchain was KBOOM. Blockchain existed, but I only knew a single and remote person that knew something about blockchain. Our team chosen to not use this relatively new technology at that point.
Last year, 2018, I was requested by my client to lead the rework of this system, but now, using blockchain. O yeah! We’ve got it done some months ago. This turned out to be the last side-project I took. For this year at least. I have my first child being born soon, and I need a break from these challenges. Anyway, I divert, back on track: single execution, blockchain, and a challenge accompanied by a frustration. We were a team of six people implementing this. Before starting, I wanted to make sure that everyone is on the same page in terms of what we do, and what blockchain is. Turns out, that while explaining bits of the blockchain, some people had troubles understanding the most basic concept: consensus and consensus algorithms. I went all haywire trying to explain concepts like: termination, integrity, agreement and fault tolerant consensus. I immediately remembered that when I was young, some very smart guy, forced me to read a paper called: „Time, Clocks, and the Ordering of Events in a Distributed System” – by Leslie Lamport. I mandated that this shall be read prior to my explanation. Everything went smooth from there on.
Be lucky. It’s your responsibility now.
Part of my daily job is working with the cloud. Large scale, small scale, simple, complicated, doing cloud design, develop cloud solutions, teaching, consulting and whatnot. While doing all this for some time now, I realized that a certain generation of technical, and otherwise very well-trained people, mostly in the software development area, has a very big problem in working with distributed systems over the cloud.
I could not understand this for years. It just did not compute. Why was this happening?
Well, turns out, some people were just not fortunate enough to have a smart guy around while “growing up”, that was able to teach them the basics of distributed computing.
I have repeated the experiment from the first story 9 additional times. Each time the same result. It’s like a veil was unveiled for some people.
So, I dare you, I double dare you, If you feel you don’t quite grasp software developing solutions in a distributed environment, have a read on the same paper. It is a masterpiece from 1976-1977, I promise you.
Cloud is dead
Yes. Cloud is dead. We now have ubiquitous computing. And, to be honest, this is close to be dead soon enough. A non-distributed environment does not exist anymore. I am not sure it ever did.