Why We Need Distributed Systems

It is Christmas time and as usual all of us are busy in shopping. Usually I buy stuff from internet ecommerce sites, who doesn’t these days, right? For shoppers, ecommerce site provides the experience of single destination. They type www.myfavshoppingsite.com and they purchase the stuff and it’s all usual business.

However, as an engineer, we understand that it is not easy to keep those sites functioning and business as normal for the shoppers. We created an illusion for our customers that they are dealing with one single server/webaddress. But, behind the scene we are running thousandas of those kinds of machines and handling the complexity around it. But why do we do this? why can’t we have a simple single machine which can just serve to the demands of customers? The simplest answer lies in one sentense - “scalable systems needs redundancy and coordination”.

There are plenty of websites that we visit everyday,even without thinking, which are serving our daily needs. Be it your faviourtie shopping site or the website where you pay 10 bucks to watch your daily shows.

To satisfy such huge demands where you have to serve millions and billions of people, one single machine can not be enough. It will be exuasted out of its resources pretty quickly. This is the reason, we need redundancy i.e. to run fleet of such machines. To operate and maintain such machines, we also need such technology and people who have those skills.

This as a whole creates a fundamentally completely different ball-game as compared to a single person sitting in a dorm and running a website on his machine.

Scale changes whole game and this combination of machines, people and technology ecosystem is defined by distributed system.

Practically, we live in the world of distributed systems which are running on internet scale.so, it is very important to understand those.

This is my journey as engineer to understand those systems and along the journey I hope to share what I know and learn a thing or two as well.

Reference:

  1. https://link.springer.com/article/10.1007/s00607-016-0508-7
  2. https://queue.acm.org/detail.cfm?id=2482856
  3. https://en.wikipedia.org/wiki/Distributed_computing
  4. https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/?imm_mid=0a2ec6&cmp=em-velocity-newsletters-vlny-cfp-20130307-direct