Teorema CAP não chame seu banco de dados de AP ou CP. Vamos começar relembrando o que é ACID que nós discutimos dos bancos de dados relacionais, que tem um foco em consistência. Então, atomicidade é o tudo ou nada, ou todas as operações que compõem a nossa transação foram executadas com sucesso, ou nenhuma. Consistência. Consistência no ACID tem a ver com levar o banco de dados do estado inicial consistente A para o estado final consistente B. Então, são transações que estão permanecendo consistentes. É executada com sucesso, o banco de dados está consistente, eu executo uma série de operações logo em seguida e o meu banco de dados vai para um outro estado consistente também. Então, consistência no ACID tem a ver com a evolução de estados consistentes para estados consistentes ao longo do tempo de operação do banco de dados. isolamento que as transações simultâneas ocorrem em espaços isolados umas das outras para não haver justamente perda de inconsistência para que cada transação enxergue a última versão do dado sobre o qual ela vai operar e fazer as transformações, derivações, os comandos necessários. E por fim, durabilidade, que é a garantia de que tudo aquilo que foi transacionado não será perdido, está escrito com sucesso e quanto mais vezes a gente escrever em lugares diferentes, mais durável é essa informação. em lugares diferentes, mais durável é essa informação. Então, com isso, recapitulamos ACID, para conseguir falar mais sobre CAP. Aqui em 2015, nós temos um comentário do Martin Kleppmann, que é bem interessante, ele é o autor desse famoso livro, que é o Designing Data Intensive Applications, e eu quero compartilhar com você justamente na linha de deixar você preparado para discussões de tomada de decisão sobre bancos de dados, sobre qual será utilizado no seu projeto, que frequentemente podem ir para um viés de chamar o banco de dados de CP ou de AP. Então, o Kleppmann fala para a gente que o Teorema Cap, ele é bastante simplista e pode ser mal compreendido para tomada de decisão. Eu, pessoalmente, na minha jornada profissional, concordo com esta afirmação. A gente simplesmente rotular um banco como CP ou como AP pode levar a uma decisão de projeto não tão acertada ou até mesmo uma decisão equivocada. Então, vamos falar agora sobre consistência no CAP, que é diferente da consistência que nós vimos no ACID. Falei logo agora que no ACID a ideia de consistência é fazer com que o banco de dados trabalhe sempre em estados consistentes após a execução de transações. A consistência no teorema CAP significa uma linearização ou uma linearidade de eventos. Isso é uma noção muito específica e muito forte de consistência. Então, aqui, primeiro ponto, consistência CAP não tem nada a ver com consistência do ácido, embora ambas as letras C sejam para a palavra consistência. Então, temos que ficar bastante atentos com este conceito, porque simplesmente chamar um banco de dados de CP ou AP logo de cara, numa análise mais rápida, uma análise até mesmo mais superficial, pode levar a uma decisão de projeto equivocada.