Benefits and Drawbacks

Benefits

The shared-nothing architecture provides many benefits from a performance and fault-tolerance perspective. It provides scalability and availability guarantees.

Scalability

All layers of the applications can be incrementally scaled out or in depending on the load.

Note: Scalability is easier and quicker to achieve in the stateless components since it requires less data transfer.

Availability

The system is resilient to single-node and multi-node failures.

More specifically, these two different forms of failure impact the stateless parts of the system in a similar way. The size of the impact is just different. For example, the remaining nodes might need to handle a bigger load, or more servers might need to be provisioned.

For the stateful parts of the architecture, single and multi-node failures have slightly different behaviors.

  • Single-node failures are a lot easier to handle since each partition can use a consensus-based technique for replication which can remain fully functional as long as a majority of nodes is healthy.
  • However, multi-node failures can affect a majority, thus making a partition unavailable

Note: Even in this case, the good thing is only this partition will be unavailable, and the rest of the system’s data will still be available.

Get hands-on with 1400+ tech skills courses.