Qu'est-ce que le théorème CAP en informatique ?
En informatique théorique, le théorème CAP, également appelé théorème de Brewer en l'honneur de l'informaticien Eric Brewer, stipule que tout magasin de données distribué ne peut fournir que deux des trois garanties suivantes :

Cohérence
Chaque lecture reçoit l'écriture la plus récente ou une erreur.
Disponibilité
Chaque requête reçoit une réponse (sans erreur), sans garantie qu'elle contienne l'écriture la plus récente.
Tolérance de partition
Le système continue de fonctionner malgré un nombre arbitraire de messages abandonnés (ou retardés) par le réseau entre les nœuds.
En cas de défaillance d'une partition du réseau, il convient de décider si l'une des mesures suivantes doit être prise :

annuler l'opération, ce qui diminue la disponibilité mais garantit la cohérence
poursuivre l'opération et donc assurer la disponibilité mais risquer l'incohérence.

Ainsi, en cas de partition du réseau, il faut choisir entre la cohérence et la disponibilité. Il convient de noter que la cohérence telle qu'elle est définie dans le théorème CAP est très différente de la cohérence garantie dans les transactions de base de données ACID.

Eric Brewer affirme que le concept souvent utilisé de "deux sur trois" peut être quelque peu trompeur, car les concepteurs de systèmes doivent seulement sacrifier la cohérence ou la disponibilité en présence de partitions, mais que dans de nombreux systèmes, les partitions sont rares.
Le théorème CAP, également appelé théorème de Brewer, stipule que les magasins de données distribués ne peuvent fournir que deux des trois garanties suivantes : la cohérence, la disponibilité et la tolérance aux partitions. Lorsqu'une partition du réseau échoue, il faut décider si l'opération doit être annulée ou poursuivie. Eric Brewer affirme que le concept "deux sur trois" peut être trompeur.
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.