The CAP theorem
says that a distributed system can deliver only two of three desired characteristics:
consistency
, availability
and partition tolerance
.A distributed system is a network that stores data on more than one node (physical or virtual machines) at the same time.
Consistency
Consistency
means that all clients
see the same data at the same time, no matter which node
they connect to.
For this to happen, whenever data is written to one node, it must be instantly forwarded or replicated to all the other nodes
in the system before the write is deemed successful.
Availability
Availability
means that any client
making a request for data gets a response, even if one or more nodes are down.
nodes
in the distributed system return a valid response for any request, without exception.Partition Tolerance
A partition
is a communications break within a distributed system.
Partition tolerance means that the cluster
must continue to work despite any number of communication breakdowns between nodes
in the system.