This document discusses the CAP theorem and its implications for database system architecture. It describes the CAP theorem, which states that a distributed system can only guarantee two of three properties: consistency, availability, and partition tolerance. It then discusses criticisms of how CAP is often interpreted too strictly. The document explores how databases can achieve different properties in normal operation versus when network partitions are detected. It also addresses the challenges of applying CAP to massively distributed databases that must be highly available and tolerant of frequent failures.