El Teorema CAP, también conocido como Teorema de Brewer, es un principio fundamental en la arquitectura de sistemas distribuidos. Postula que es imposible para un sistema de datos distribuido lograr simultáneamente las tres garantías siguientes: Consistencia (Consistency), donde todas las lecturas reciben el dato más reciente o un error; Disponibilidad (Availability), donde cada solicitud recibe una respuesta (sin garantía de que sea el dato más reciente) y el sistema permanece operativo; y Tolerancia a Particiones (Partition Tolerance), donde el sistema continúa operando a pesar de la pérdida de mensajes o fallos de nodos entre particiones de la red. En la práctica, dado que las particiones de red son inevitables en sistemas distribuidos a gran escala, un arquitecto debe elegir entre Consistencia y Disponibilidad.

La implementación del Teorema CAP se observa en la clasificación de muchas bases de datos distribuidas y sistemas de almacenamiento. Por ejemplo, bases de datos relacionales tradicionales como PostgreSQL o MySQL (cuando se escalan horizontalmente con replicación síncrona) y sistemas NoSQL como Apache Cassandra o DynamoDB son ejemplos de sistemas CP (Consistency and Partition Tolerance) o AP (Availability and Partition Tolerance) respectivamente. Sistemas CP como ZooKeeper o etcd priorizan la consistencia, asegurando que todos los nodos vean la misma versión de los datos, incluso si esto significa sacrificar disponibilidad durante una partición. Por otro lado, sistemas AP como Amazon DynamoDB o Apache Cassandra priorizan la disponibilidad, permitiendo que los nodos continúen procesando solicitudes incluso durante una partición, lo que puede llevar a inconsistencias temporales que se resuelven posteriormente (eventual consistency).

Para un arquitecto de sistemas, el Teorema CAP es crucial porque define los trade-offs inherentes en el diseño de sistemas distribuidos. La elección entre Consistencia y Disponibilidad, asumiendo la Tolerancia a Particiones, es una decisión estratégica que impacta directamente la fiabilidad, el rendimiento y la experiencia del usuario. Un sistema que requiere alta consistencia (ej. transacciones financieras) optará por CP, aceptando posibles interrupciones de disponibilidad durante fallos de red. Un sistema que prioriza la disponibilidad y la resiliencia (ej. redes sociales, comercio electrónico) optará por AP, gestionando la consistencia eventual a través de mecanismos de resolución de conflictos. Comprender el CAP Theorem permite al arquitecto tomar decisiones informadas sobre la selección de tecnologías, el diseño de modelos de datos y la implementación de estrategias de replicación y recuperación ante desastres, alineando las propiedades del sistema con los requisitos funcionales y no funcionales del negocio.