¿Qué es el teorema CAP en informática?
En informática teórica, el teorema CAP, también llamado teorema de Brewer en honor al informático Eric Brewer, afirma que cualquier almacén de datos distribuido sólo puede proporcionar dos de las tres garantías siguientes:

Consistencia
Cada lectura recibe la escritura más reciente o un error.
Disponibilidad
Cada petición recibe una respuesta (sin error), sin la garantía de que contenga la escritura más reciente.
Tolerancia a la partición
El sistema sigue funcionando a pesar de que la red entre nodos deje caer (o retrase) un número arbitrario de mensajes.
Cuando se produce un fallo en la partición de la red, hay que decidir si se hace una de las siguientes cosas:

cancelar la operación y así disminuir la disponibilidad pero garantizar la coherencia
proceder con la operación y así proporcionar disponibilidad pero arriesgarse a la inconsistencia.

Por tanto, si hay una partición de red, hay que elegir entre consistencia o disponibilidad. Ten en cuenta que la consistencia, tal como se define en el teorema CAP, es bastante diferente de la consistencia garantizada en las transacciones de bases de datos ACID[4].

Eric Brewer argumenta que el concepto a menudo utilizado de "dos de tres" puede ser algo engañoso, porque los diseñadores de sistemas sólo tienen que sacrificar la coherencia o la disponibilidad en presencia de particiones, pero que en muchos sistemas las particiones son poco frecuentes.
El teorema CAP, también llamado teorema de Brewer, afirma que los almacenes de datos distribuidos sólo pueden ofrecer dos de tres garantías: consistencia, disponibilidad y tolerancia a las particiones. Cuando falla una partición de la red, hay que decidir si se cancela la operación o se continúa con ella. Eric Brewer sostiene que el concepto "dos de tres" puede ser engañoso.
What is CAP theorem in computer science?
In theoretical computer science, the CAP theorem, also named Brewer's theorem after computer scientist Eric Brewer, states that any distributed data store can provide only two of the following three guarantees:

Consistency
Every read receives the most recent write or an error.
Availability
Every request receives a (non-error) response, without the guarantee that it contains the most recent write.
Partition tolerance
The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes.
When a network partition failure happens, it must be decided whether to do one of the following:

cancel the operation and thus decrease the availability but ensure consistency
proceed with the operation and thus provide availability but risk inconsistency.

Thus, if there is a network partition, one has to choose between consistency or availability. Note that consistency as defined in the CAP theorem is quite different from the consistency guaranteed in ACID database transactions.[4]

Eric Brewer argues that the often-used "two out of three" concept can be somewhat misleading because system designers need only to sacrifice consistency or availability in the presence of partitions, but that in many systems partitions are rare.
The CAP theorem, also named Brewer's theorem, states that distributed data stores can provide only two of three guarantees: consistency, availability, and partition tolerance. When a network partition fails, it must be decided whether to cancel the operation or proceed with the operation. Eric Brewer argues that the "two out of three" concept can be misleading.