CAP Theorem: Understanding Consistency, Availability, and Partition Tolerance