Il teorema CAP è l'idea che un sistema informatico distribuito non sia in grado di fornire contemporaneamente tolleranza, coerenza e disponibilità delle partizioni.
La teoria propone che quando una rete è stata partizionata per garantire che un guasto di rete non impedisca la comunicazione tra i server, il sistema distribuito deve scegliere tra coerenza o disponibilità.
Il teorema CAP si è dimostrato utile principalmente per stabilire le priorità nell'infrastruttura e nella configurazione del server di database. In un tale scenario, è ancora possibile ottenere sia la coerenza che la disponibilità entro parametri accettabili. Ad esempio, è possibile consentire ai dati di essere incoerenti per brevi periodi di tempo mentre le nuove scritture si propagano in tutto il sistema. Oppure, i server critici che gestiscono le operazioni di lettura / scrittura dei client possono essere partizionati in modo tale che gli errori in altre sezioni non influiscano in modo sensibile sulle prestazioni per gli utenti finali.
Il teorema CAP è stato sviluppato nel 2000 da Eric Brewer.