How would you explain the CAP theorem in the context of a distributed system design at Persistent Systems?