Deriving or correlating software architecture from real world events is nothing new. I know few architects who are really good in doing that. In fact, many technologies are inspired by nature including the aviation and I honestly believe many more such innovations will happen in future. This is just my humble attempt to find such correlation.
Beginning of the year 2017, a famous protest happened in Tamilnadu (a state in southern part of India). People of the state gathered in mass to protest against supreme court’s order to ban Jallikattu – a traditional Tamil bull taming sport. Without going too much into the political aspects, I will list down some of the unique attributes about this protest.
- Protest started with a goal to solve a request of majority of people in the state. There were few awareness videos and songs to start with, but there was no leader controlling or organizing protestors. Few unknown people started the protest, others came to know about the protest through social media and started participating in the protest voluntarily. We can say the end goal is the real leader that united everyone.
- Once the protest started, few people tried to influence the group by broadening or modifying the scope of the protest. But majority of the people ignored it and just sticked to the original goal.
- Over the time, more and more people joined voluntarily and gathered in several regions within the state and the protest became very strong.
- Government tried to compromise with protestors by arranging a meeting with few random people (remember there was no leader) from the group. But it was not fruitful since they were not controlling the crowd, in fact no one controls the crowd. Even if those people were made to compromise and leave the protest (which did not happen anyway), others would not have cared about it. Some people tried to spread wrong news and they were ignored as well.
- To clear the protest, authorities had to either forcibly remove all protestors (million+) spread across many locations or solve their request. Forcibly clearing millions of people would be a guaranteed disaster, so the only choice was to solve the problem which made people to voluntarily withdraw themselves from the protest.
You can learn more about this protest in this wikipedia article.
Okay, does that description ring a bell with you? It’s ok if it is not, I can give a clue – Satoshi Nakamoto? Not yet? Ok, Torrent? hmmm, you are there. Basically, this incident can be best correlated with any decentralized distributed technology out there. I will take BitCoin’s BlockChain as an example (because I love it) and list down few of its key attributes.
- Blockchain was created to make decentralized peer-to-peer cash system a reality. No single party controls or governs the bitcoin or blockchain. There are set of defined rules that every participating node follows. People started participating in the network by running full nodes slowly after the white paper was published by Satoshi Nakamoto and the initial version of bitcoin wallet was out.
- It is impossible to change the rules of the network without the acceptance from majority of participants. Let us not go deep into hard forks now.
- Anyone can participate in the network by themselves without requiring any approval. Because of this unrestricted participation, the miners and bitcoin nodes are now spread across the world making it one of the biggest and strongest network with so much (wasted) computational power.
- Malicious nodes will be easily identified and ignored because the blocks produced by those nodes will not be accepted by majority of other nodes in the network.
- It’s impossible to kill the entire network until you take down every participating node or until every participating node is voluntarily withdrawn from the network.
Do you see some correlation now? Great. In short, centralization is always easy to destroy or compromise either in technology or real life. Always choose decentralized and distributed technologies to build strong and powerful networks.