O teorema CAP é a ideia de que um sistema de computação distribuída não é capaz de fornecer tolerância, consistência e disponibilidade de partições ao mesmo tempo.
A teoria propõe que quando uma rede foi particionada para garantir que uma falha na rede não impedirá a comunicação entre servidores, o sistema distribuído deve escolher entre consistência ou disponibilidade.
O teorema CAP provou ser principalmente útil para estabelecer prioridades na infra-estrutura e configuração do servidor de banco de dados. Em tal cenário, ainda é possível alcançar tanto a consistência quanto a disponibilidade dentro de parâmetros aceitáveis. Por exemplo, pode ser permitido que os dados sejam inconsistentes por curtos períodos de tempo enquanto novas escritas se propagam por todo o sistema. Ou, servidores críticos que lidam com leitura/escrita de clientes podem ser particionados de tal forma que falhas em outras seções não afetem notavelmente o desempenho dos usuários finais.
CAP teorema foi desenvolvido em 2000 por Eric Brewer.