Distributed Computing — Is Decentralised good??

Technology & Life
3 min readFeb 14, 2022

Freedom from Control -> Big Leap in Capability.

Distributed Computing has gained tremendous popularity in last decade because of all its strengths. Distributed Applications can be Architected in Decentralised or Centralised way.

I personally favour Decentralised Style / is it justified though?

Freedom from Control / Big Leap in Capability

Reason to go Towards Decentralised Style?

I believe, just like Living Beings, even machines should have the freedom of choosing their tasks. If we let machine pick up the task whenever it has capacity (rather than someone telling when to work), it will lead to enhanced performance with optimal usage of resources.

Each Node Picks their own Task

Hence I prefer, the Decentralised Style.

To begin with let’s consider when One Node is available to perform one kind of task.

Performance

Goes up. A Bigger tasks is now being broken into smaller tasks , and each task being worked upon by multiple different nodes; Parallely.

Optimal Resource Usage

Improves Considerably. Whenever a node has bandwidth, it goes to the pool of tasks and picks up the task as soon as it finds any. As compared to a Monolith or a Centralised Architecture, decentralised architecture ensures that Nodes are working most of the time, without being overburdened.

Business Solutions Scalability

Business is never static. It keeps changing its direction to align itself to market. Decentralised architecture gives complete freedom to add, remove or quickly update a business functionality without impacting any other business functionality.

When designed properly, this architecture ensures that solutions adapt with the business needs quickly without (m)any disruptions.

Checkpoint & Resume

Another big positive of having a decentralised architecture is having no single point of complete failure.

Even when a node goes down, other nodes will continue working. Whenever the impacted node comes back online, it will resume where it left off.

Other Face of Coin

As I always say —

Every Coin has Two faces / हर सिक्के के दो पहलु होते हैं.

Complexity, Locking & Deadlock

While the code complexity reduces overall solution complexity increases slightly. Though as soon as you decide to scale up Horizontally, Solution complexity increases drastically.

Worker Node 1 Horizontally Scaled Up

Architect will have to ensure that proper locking on the tasks to prevent two nodes working on the same task. Locking itself brings in complexity w.r.t. Race Condition/ Deadlock and Optimal way of attaining lock.

Ensure that No Two Nodes are working on Same Task

Overall

There are several benefits to a Decentralised Distributed Architecture.

  • Performance
  • Optimal Resource Usage
  • Business Solutions Scalability
  • Checkpoint / Resume

So long as Architect keeps the overall System Complexity and the way of attaining Lock is sorted out — Decentralised Architecture can scale overall performance up considerably.

Please let me know your comments.

--

--