https://medium.com/@ishifoev/understanding-the-cap-theorem-a-guide-to-distributed-systems-b2e99b64e91f