<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jeann Garconi Alves</title>
    <description>The latest articles on DEV Community by Jeann Garconi Alves (@jeann_garconialves_18768).</description>
    <link>https://dev.to/jeann_garconialves_18768</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3902517%2F9b2ae24a-ac5d-47af-b8c2-e26cfcd3b73e.jpg</url>
      <title>DEV Community: Jeann Garconi Alves</title>
      <link>https://dev.to/jeann_garconialves_18768</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jeann_garconialves_18768"/>
    <language>en</language>
    <item>
      <title>O Teorema CAP: O Dilema que Todo Arquiteto de Sistemas Precisa Dominar</title>
      <dc:creator>Jeann Garconi Alves</dc:creator>
      <pubDate>Tue, 28 Apr 2026 13:37:48 +0000</pubDate>
      <link>https://dev.to/jeann_garconialves_18768/o-teorema-cap-o-dilema-que-todo-arquiteto-de-sistemas-precisa-dominar-33ni</link>
      <guid>https://dev.to/jeann_garconialves_18768/o-teorema-cap-o-dilema-que-todo-arquiteto-de-sistemas-precisa-dominar-33ni</guid>
      <description>&lt;p&gt;Escalabilidade e alta disponibilidade não são mais "diferenciais" — são requisitos básicos. Mas, quando entramos no mundo dos sistemas distribuídos, percebemos que não existe almoço grátis. Para garantir que sua aplicação continue rodando em múltiplos servidores, você precisa entender o Teorema CAP.&lt;/p&gt;

&lt;p&gt;Neste post, vamos desmistificar esse dilema e ver como ele impacta suas escolhas de arquitetura.&lt;/p&gt;

&lt;p&gt;O que é o Teorema CAP?&lt;br&gt;
Proposto por Eric Brewer, o Teorema CAP afirma que um sistema distribuído de dados pode oferecer, simultaneamente, apenas duas de três garantias:&lt;/p&gt;

&lt;p&gt;C (Consistency - Consistência): Toda leitura recebe a gravação mais recente ou um erro. O sistema se comporta como se houvesse apenas uma cópia dos dados.&lt;/p&gt;

&lt;p&gt;A (Availability - Disponibilidade): Toda requisição recebe uma resposta de sucesso (mesmo que não seja o dado mais recente), garantindo que o sistema nunca fique fora do ar.&lt;/p&gt;

&lt;p&gt;P (Partition Tolerance - Tolerância a Partição): O sistema continua funcionando mesmo que a rede falhe e "quebre" a comunicação entre os nós.&lt;/p&gt;

&lt;p&gt;O Dilema: Por que precisamos escolher?&lt;br&gt;
Em sistemas distribuídos, a Partição de Rede (P) é inevitável. Cabos falham, roteadores engasgam e switches dão problema. Como não podemos evitar que a rede falhe, a decisão real do arquiteto é sempre entre Consistência (C) e Disponibilidade (A).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sistemas CP (Consistência + Partição)
Se a rede falha, o sistema prefere "congelar" ou retornar um erro a entregar dados desatualizados.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Onde aplicar: Bancos de dados transacionais, sistemas financeiros e operações de checkout. A precisão dos dados vale mais do que a disponibilidade momentânea.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sistemas AP (Disponibilidade + Partição)
O sistema prioriza continuar atendendo requisições, mesmo que isso signifique que o usuário veja um dado "um pouco atrasado".&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Onde aplicar: Redes sociais, feeds de notícias, sistemas de busca. É melhor o usuário ver um comentário de 5 segundos atrás do que encontrar uma página de erro 500.&lt;/p&gt;

&lt;p&gt;Aplicação no Mundo Real&lt;br&gt;
Se você estiver construindo, por exemplo, um sistema de apostas (como estou fazendo em um dos meus projetos de estudo), a escolha depende do módulo:&lt;/p&gt;

&lt;p&gt;Módulo de Pagamentos: Deve ser CP. Você não pode permitir que um saldo seja debitado duas vezes ou que fique negativo por falta de sincronia.&lt;/p&gt;

&lt;p&gt;Módulo de Feed de Apostas: Pode ser AP. O usuário prefere ver a odd (cotação) com um delay de milissegundos do que ver o site fora do ar durante uma partida importante.&lt;/p&gt;

&lt;p&gt;Conclusão&lt;br&gt;
Não existe "bala de prata" na arquitetura. O Teorema CAP é uma ferramenta de decisão: antes de escolher seu banco de dados ou definir seu protocolo de replicação, pergunte-se: "O que dói mais no meu usuário final hoje: um dado desatualizado ou uma página de erro?".&lt;/p&gt;

&lt;p&gt;A resposta para essa pergunta é o que definirá a arquitetura do seu próximo sistema.&lt;/p&gt;

&lt;p&gt;Referências&lt;br&gt;
BREWER, Eric A. Towards Robust Distributed Systems. PODC, 2000.&lt;/p&gt;

&lt;p&gt;KLEPPMANN, Martin. Designing Data-Intensive Applications. O'Reilly Media, 2017.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>computerscience</category>
      <category>distributedsystems</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
