CAP Theorem and Distributed Systems (Trade-offs of Consistency, Availability, and Partition Tolerance)