With the exponential growth in volume of highly sensitive data, it has become
increasingly important to distribute and replicate it across a cluster of machines
to maintain reliable and fault-tolerant systems.

There are many cases n which the use of single computer would be possible in principle
but the use of distributed system is benificial for practical reasons. For example, it
may be more cost efficient to obtain the desired level of performance by using a cluster
of several low-end computers, in comparison with a single high-end computer. A distributed
system can provide more reliability than a non-distributed system, as there is no
single point of failure. Moreover, a distributed system may be easier to expand and
manage than a monolithic uniprocessor system.