Many commercial applications require high availability. On the other hand, every system that stores replicated data should strive for consistency. If in addition the system may suffer partitioning due to network failures, there is, however, a fundamental problem, captured by "Brewer's CAP-theorem", see For your essay you are required to consider the three distributed systems described in the articles below In your essay explain the fundamental problem addressed by the CAP theorem. Moreover, for each system, state its goal and the context in which it is used and give a brief overview of its architecture. Then discuss for each system in more detail how the problem indicated above manifests itself and the choices that have made by its designers to deal with it. In particular, pay attention to the type of consistency offered by the system. Also report whether, and if so what, evidence is given in the paper that the architecture achieves the desired high availability.