Files
nexus/sreweekly/articles/308/02-what-is-cap-theorem.html
2026-09-12 17:23:01 +08:00

3 lines
96 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang=""><head><script>;window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)};gtag('consent','default',{ad_storage:'denied',analytics_storage:'denied',functionality_storage:'denied',personalization_storage:'denied',security_storage:'granted',wait_for_update:2000,});gtag('set','ads_data_redaction',!0);gtag('set','url_passthrough',!0);</script><!-- Google Tag Manager --><script>;if(!navigator.userAgent.match(/nsights|ighth/i)){(function(e,n,g,t,s){e[t]=e[t]||[];e[t].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var r=n.getElementsByTagName(g)[0],a=n.createElement(g),i=t!='dataLayer'?'&l='+t:'';a.async=!0;a.src='https://www.googletagmanager.com/gtm.js?id='+s+i;r.parentNode.insertBefore(a,r)})(window,document,'script','dataLayer','GTM-KWFZJ7W')};</script><!-- End Google Tag Manager --><!-- Start cookieyes banner --><script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/a66c0dc7dd2f247ca7c70a37/script.js"></script><!-- End cookieyes banner --><!-- Fathom - beautiful, simple website analytics --><script src="https://cdn.usefathom.com/script.js" data-site="NVLANZLA" defer></script><!-- / Fathom --><style>@font-face{font-family:EuclidCircularB-Regular;src:url(/user/themes/softwaremill/assets/fonts/EuclidCircularB-Regular.woff);font-weight:normal;font-style:normal}@font-face{font-family:'roboto_ffibold';src:url(/user/themes/softwaremill/assets/fonts/robotoffi-bold-webfont.woff2) format('woff2'), url(/user/themes/softwaremill/assets/fonts/robotoffi-bold-webfont.woff) format('woff');font-weight:normal;font-style:normal}</style><meta charset="utf-8" /><meta name="robots" content="index,follow" /><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /><meta name="facebook-domain-verification" content="g8uff77fe9ogvytjfvs3km0ftzr4as" /><meta name="generator" content="softwaremill" /><meta name="description" content="What is CAP Theorem and why is it important? We're having a look at this law and exploring whether it applies to modern-day systems." /><meta name="title" content="What is CAP Theorem?" /><meta name="twitter:card" property="twitter:card" content="summary_large_image" /><meta name="twitter:title" property="twitter:title" content="What is CAP Theorem? | SoftwareMill" /><meta name="twitter:description" property="twitter:description" content="What is CAP Theorem and why is it important? We're having a look at this law and exploring whether it applies to modern-day systems." /><meta name="twitter:image" property="twitter:image" content="https://softwaremill.com/user/pages/blog/what-is-cap-theorem/blogpost-what-is-cap-theorem.png?g-caa9725f" /><meta name="twitter:url" property="twitter:url" content="https://softwaremill.com/what-is-cap-theorem/" /><meta property="og:site_name" content="SoftwareMill" /><meta property="og:title" content="What is CAP Theorem?" /><meta property="og:type" content="article" /><meta property="og:url" content="https://softwaremill.com/what-is-cap-theorem/" /><meta property="og:description" content="What is CAP Theorem and why is it important? We're having a look at this law and exploring whether it applies to modernday systems." /><meta property="og:image" content="https://softwaremill.com/user/pages/blog/what-is-cap-theorem/blogpost-what-is-cap-theorem.png?g-caa9725f" /><link rel="preload" href="https://fonts.googleapis.com/css?family=Open+Sans:300i,400,600,700&display=swap&subset=latin-ext" as="style"><link href="https://fonts.googleapis.com/css?family=Open+Sans:300i,400,600,700&display=swap&subset=latin-ext" rel="stylesheet" type="text/css"><link href="/user/plugins/markdown-notices/assets/notices.css" type="text/css" rel="stylesheet"><link href="/user/plugins/form/assets/form-styles.css" type="text/css" rel="stylesheet"><link href="/user/plugins/langswitcher/css/langswitcher.css" type="text/css" rel="stylesheet"><link href="/user/plugins/youtube/css/youtube.css" type="text/css" rel="stylesheet"><link href="/user/themes/softwaremill/_/dist/styles.db2520c0.css" type="text/css" rel="stylesheet"><link href="/user/plugins/login/css/login.css" type="text/css" rel="stylesheet"><link rel="shortcut icon" type="image/png" href="/user/themes/softwaremill/assets/favicon.png" /><link rel="canonical" href="https://softwaremill.com/what-is-cap-theorem/" /><link rel="alternate" type="application/atom+xml" title="SoftwareMill Atom Feed" href="/blog.atom" /><link rel="alternate" type="application/rss+xml" title="SoftwareMill RSS Feed" href="/blog.rss" /><link rel="alternate" type="application/json" title="SoftwareMill JSON Feed" href="/blog.json" /><title>What is CAP Theorem?</title></head><body data-gtmpage="What is CAP Theorem?"><!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KWFZJ7W" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --><header id="header-top" class="header-top header--black animated header-light" data-app-header><div class="viewport"><div class="header__layout"><section class="header__branding"><a class="header__logo" href="/" aria-label="Softwaremill home page"><figure class="logo__text"><?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 283.46 70.87"><!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) --><defs><style>.st0{fill:#b370ae}.st1{fill:#b2d234}.st2{fill:#58ba47}.st3{fill:#975ca6}.st4{fill:#1d1d1b}.st5{fill:#76c4df}.st6{fill:#2780c0}.st7{fill:#35539b}.st8{fill:#e5529a}</style></defs><g><rect class="st6" x="31.65" y="22.02" width="6.88" height="22.02"/><rect class="st2" x="79.81" y="22.02" width="6.88" height="22.02"/><rect class="st3" x="50.91" y="22.02" width="6.88" height="22.02"/><rect class="st8" x="60.54" y="26.14" width="6.88" height="22.01"/><rect class="st0" x="70.18" y="22.02" width="6.88" height="22.02"/><path class="st5" d="M48.16,25.46c0,1.9-1.54,3.44-3.44,3.44s-3.44-1.54-3.44-3.44,1.54-3.44,3.44-3.44,3.44,1.54,3.44,3.44Z"/><path class="st7" d="M28.9,40.59c0,1.9-1.54,3.44-3.44,3.44s-3.44-1.54-3.44-3.44,1.54-3.44,3.44-3.44,3.44,1.54,3.44,3.44Z"/><path class="st1" d="M96.32,40.59c0,1.9-1.54,3.44-3.44,3.44s-3.44-1.54-3.44-3.44,1.54-3.44,3.44-3.44,3.44,1.54,3.44,3.44Z"/><g><path class="st4" d="M104.12,37.23l.83-.98c1.24,1.12,2.42,1.68,4.06,1.68s2.64-.85,2.64-2.02v-.03c0-1.1-.59-1.73-3.08-2.25-2.73-.59-3.98-1.47-3.98-3.42v-.03c0-1.86,1.64-3.24,3.89-3.24,1.73,0,2.96.49,4.17,1.46l-.78,1.03c-1.1-.9-2.2-1.29-3.42-1.29-1.54,0-2.52.85-2.52,1.91v.03c0,1.12.61,1.75,3.22,2.3,2.64.57,3.86,1.54,3.86,3.35v.04c0,2.03-1.69,3.35-4.05,3.35-1.88,0-3.42-.63-4.84-1.9Z"/><path class="st4" d="M116.62,33.06v-.03c0-3.27,2.46-6.13,6.06-6.13s6.03,2.83,6.03,6.1v.03c0,3.27-2.46,6.13-6.06,6.13s-6.03-2.83-6.03-6.1ZM127.32,33.06v-.03c0-2.69-1.96-4.89-4.67-4.89s-4.64,2.17-4.64,4.86v.03c0,2.69,1.96,4.89,4.67,4.89s4.64-2.17,4.64-4.86Z"/><path class="st4" d="M132.94,27.1h8.52v1.24h-7.18v4.23h6.42v1.22h-6.42v5.17h-1.34v-11.86Z"/><path class="st4" d="M149.08,28.33h-3.98v-1.24h9.32v1.24h-3.98v10.62h-1.35v-10.62Z"/><path class="st4" d="M157.41,27.1h1.46l3.39,9.88,3.25-9.91h1.1l3.25,9.91,3.39-9.88h1.41l-4.23,11.94h-1.13l-3.25-9.62-3.27,9.62h-1.12l-4.23-11.94Z"/><path class="st4" d="M181.34,27.01h1.25l5.4,11.94h-1.44l-1.39-3.13h-6.45l-1.41,3.13h-1.37l5.4-11.94ZM184.65,34.62l-2.69-6.05-2.71,6.05h5.4Z"/><path class="st4" d="M191.24,27.1h5.1c1.46,0,2.63.44,3.37,1.19.58.58.92,1.41.92,2.34v.03c0,1.96-1.36,3.12-3.22,3.46l3.64,4.84h-1.64l-3.44-4.61h-3.39v4.61h-1.34v-11.86ZM196.22,33.14c1.78,0,3.05-.92,3.05-2.44v-.03c0-1.46-1.12-2.34-3.03-2.34h-3.66v4.81h3.64Z"/><path class="st4" d="M205.88,27.1h8.57v1.22h-7.23v4.05h6.47v1.22h-6.47v4.15h7.32v1.22h-8.65v-11.86Z"/><path class="st4" d="M219.56,27.1h2.81l3.12,5.01,3.12-5.01h2.81v11.86h-2.59v-7.74l-3.34,5.06h-.07l-3.3-5.01v7.69h-2.56v-11.86Z"/><path class="st4" d="M235.78,27.1h2.61v11.86h-2.61v-11.86Z"/><path class="st4" d="M254.15,27.1h2.61v9.48h4.32v2.37h-6.92v-11.86Z"/><path class="st4" d="M243.25,27.1h2.61v9.48h4.32v2.37h-6.92v-11.86Z"/></g></g><g><path class="st4" d="M133.22,54.84l2.88-6.3h.66l2.88,6.3h-.7l-2.65-5.91h.27l-2.65,5.91h-.69ZM134.36,53.15l.2-.54h3.66l.2.54h-4.06Z"/><path class="st4" d="M146.63,54.84l-2.79-6.3h.72l2.61,5.93h-.4l2.63-5.93h.67l-2.79,6.3h-.66Z"/><path class="st4" d="M152.02,54.84v-6.3h.67v6.3h-.67Z"/><path class="st4" d="M155.64,54.84v-6.3h2.36c.53,0,.99.08,1.38.26.38.17.68.42.89.74.21.32.31.71.31,1.17s-.1.83-.31,1.15c-.21.32-.5.57-.89.74s-.84.26-1.38.26h-1.99l.3-.31v2.3h-.67ZM156.31,52.59l-.3-.32h1.97c.63,0,1.11-.14,1.44-.41.33-.28.49-.66.49-1.16s-.16-.89-.49-1.17c-.33-.28-.81-.41-1.44-.41h-1.97l.3-.32v3.79ZM159.94,54.84l-1.62-2.29h.72l1.63,2.29h-.73Z"/><path class="st4" d="M164.27,54.84v-5.72h-2.21v-.58h5.09v.58h-2.21v5.72h-.67Z"/><path class="st4" d="M171.65,54.89c-.8,0-1.44-.23-1.9-.69s-.69-1.15-.69-2.05v-3.61h.67v3.58c0,.74.17,1.29.5,1.65.34.35.81.53,1.42.53s1.09-.18,1.43-.53c.34-.35.5-.9.5-1.65v-3.58h.65v3.61c0,.91-.23,1.59-.69,2.05-.46.46-1.09.69-1.89.69Z"/><path class="st4" d="M178.88,54.89c-.47,0-.92-.08-1.34-.23-.43-.15-.76-.35-1-.59l.26-.51c.22.22.52.4.9.54s.77.22,1.18.22.72-.05.97-.15c.25-.1.43-.23.55-.4s.18-.35.18-.56c0-.25-.07-.44-.21-.59-.14-.15-.33-.27-.55-.36-.23-.09-.48-.16-.76-.23-.28-.07-.55-.14-.83-.21-.28-.08-.53-.17-.76-.3-.23-.13-.42-.29-.56-.5-.14-.21-.21-.48-.21-.81,0-.31.08-.6.25-.86s.42-.47.76-.63.78-.24,1.31-.24c.35,0,.7.05,1.05.15.35.1.65.24.9.41l-.22.53c-.27-.18-.56-.31-.86-.4s-.6-.13-.88-.13c-.38,0-.69.05-.94.15-.25.1-.43.24-.54.41s-.17.36-.17.58c0,.25.07.44.21.59.14.15.33.27.56.35.23.08.48.16.76.23.28.07.55.14.82.22.27.08.52.18.76.3.23.12.42.29.56.49s.21.47.21.8c0,.31-.08.59-.25.85s-.42.47-.77.63c-.35.16-.79.24-1.33.24Z"/><path class="st4" d="M183.58,54.84v-6.3h.67v5.72h3.53v.58h-4.19Z"/><path class="st4" d="M188.77,54.84l2.88-6.3h.66l2.88,6.3h-.7l-2.65-5.91h.27l-2.65,5.91h-.69ZM189.9,53.15l.2-.54h3.66l.2.54h-4.06Z"/><path class="st4" d="M197.13,54.84v-6.3h2.72c.7,0,1.25.14,1.63.42.39.28.58.68.58,1.2,0,.34-.08.63-.24.86-.16.23-.38.41-.65.53-.27.12-.57.18-.9.18l.15-.22c.4,0,.75.06,1.04.18s.52.31.68.55c.16.24.24.54.24.91,0,.53-.2.95-.59,1.24-.39.29-.99.44-1.78.44h-2.9ZM197.8,54.29h2.22c.55,0,.97-.09,1.27-.28.29-.19.44-.49.44-.91s-.15-.71-.44-.9c-.29-.19-.72-.28-1.27-.28h-2.29v-.55h2.08c.5,0,.9-.1,1.17-.29.28-.19.42-.48.42-.86s-.14-.67-.42-.86c-.28-.19-.67-.28-1.17-.28h-2.01v5.2Z"/><path class="st4" d="M210.81,54.89c-.47,0-.91-.08-1.31-.24-.4-.16-.75-.38-1.04-.67-.29-.29-.52-.63-.69-1.02-.17-.39-.25-.82-.25-1.28s.08-.89.25-1.28c.17-.39.4-.73.69-1.02s.65-.51,1.05-.67.84-.24,1.31-.24.88.08,1.29.23c.4.15.74.38,1.02.69l-.42.42c-.26-.26-.54-.46-.86-.57-.31-.12-.65-.17-1.01-.17s-.73.06-1.05.19c-.32.13-.61.31-.85.55-.24.24-.43.51-.56.83-.13.32-.2.66-.2,1.04s.07.72.2,1.04c.14.31.32.59.56.83.24.24.52.42.85.55.32.13.67.19,1.05.19s.7-.06,1.01-.18c.31-.12.6-.31.86-.58l.42.42c-.28.31-.62.54-1.02.69-.4.16-.83.23-1.3.23Z"/><path class="st4" d="M218.2,54.89c-.47,0-.91-.08-1.32-.24-.41-.16-.76-.38-1.05-.67s-.53-.63-.69-1.02c-.17-.39-.25-.81-.25-1.27s.08-.89.25-1.27c.17-.39.4-.73.69-1.02s.65-.52,1.05-.67.84-.24,1.32-.24.91.08,1.31.24c.4.16.75.38,1.05.67s.53.63.69,1.02c.16.39.25.82.25,1.28s-.08.89-.25,1.28c-.17.39-.4.73-.69,1.02-.3.29-.65.51-1.05.67-.4.16-.84.24-1.31.24ZM218.2,54.3c.38,0,.73-.06,1.05-.19.32-.13.6-.31.84-.55.24-.24.42-.51.55-.83.13-.32.2-.66.2-1.04s-.07-.72-.2-1.04-.32-.59-.55-.83c-.24-.24-.52-.42-.84-.55-.32-.13-.67-.19-1.05-.19s-.73.06-1.05.19c-.32.13-.61.31-.85.55s-.43.51-.56.83-.2.66-.2,1.04.07.72.2,1.04c.13.32.32.6.56.83s.52.42.85.55c.32.13.68.19,1.05.19Z"/><path class="st4" d="M223.9,54.84v-6.3h.55l2.88,4.91h-.29l2.85-4.91h.55v6.3h-.64v-5.3h.15l-2.63,4.5h-.32l-2.65-4.5h.17v5.3h-.64Z"/><path class="st4" d="M233.39,54.84v-6.3h2.36c.53,0,.99.08,1.38.26.38.17.68.42.89.74.21.32.31.71.31,1.17s-.1.83-.31,1.15c-.21.32-.5.57-.89.74s-.84.26-1.38.26h-1.99l.3-.31v2.3h-.67ZM234.06,52.59l-.3-.32h1.97c.63,0,1.11-.14,1.44-.41s.49-.66.49-1.16-.16-.89-.49-1.17c-.33-.28-.81-.41-1.44-.41h-1.97l.3-.32v3.79Z"/><path class="st4" d="M239.75,54.84l2.88-6.3h.66l2.88,6.3h-.7l-2.65-5.91h.27l-2.65,5.91h-.69ZM240.88,53.15l.2-.54h3.66l.2.54h-4.06Z"/><path class="st4" d="M248.11,54.84v-6.3h.55l4.35,5.47h-.29v-5.47h.66v6.3h-.55l-4.34-5.47h.29v5.47h-.67Z"/><path class="st4" d="M257.83,54.84v-2.34l.15.41-2.67-4.37h.71l2.35,3.84h-.38l2.35-3.84h.67l-2.67,4.37.15-.41v2.34h-.66Z"/></g></svg></figure></a><a class="header__ui ui-nav do-toggle-nav" href="#" role="button" aria-label="Menu"><span></span><span></span><span></span><span></span></a></section><section class="header__menu"><nav id="nav-top nav-top--black" class="nav-top" data-app-nav-mobile><ul class="nav__menu menu--top"><li class="menu__item item--has-submenu "><a href="/" data-gtmevent="menu-click" data-gtmvalue="" data-gtmlabel="Expertise" class="navbar-option has-submenu " style="--test:9">Expertise</a><ul class="nav__submenu submenu " style="--badge-hover-color:#007C3E"><span class="submenu__title"><a href="#" class="do-close-subnav">Expertise</a></span><li class="menu__item item--submenu"><div class="submenu__container"><div class="submenu__column submenu__column--1"></div><div class="submenu__column submenu__column--2"><ul class="submenu__col submenu__col--1"><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Expertise</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/data-streaming-and-event-driven-systems">Data Streaming & Event-Driven Systems</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/backend-development/">Performance Engineering</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/distributed-platform-architecture">Distributed Platform Architecture </a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/services/observability-services/">Observability & Reliability Engineering </a></span></li></ul></li></ul><ul class="submenu__col submenu__col--2"></ul></div><div class="submenu__column submenu__column--3"><figure class="submenu__figure"><img class="lazy" data-src="/user/themes/softwaremill/assets/uploads/why-choose-us.png" data-lazy-load /></figure><h3 class="submenu__heading header--no-margin">Why Choose Us</h3><div class="submenu__content">Looking for a technology partner? Here’s why leading companies trust us to deliver.</div><a href="https://softwaremill.com/why-choose-us/" class="submenu__cta button button--medium ">Find out</a></div></div></li></ul></li><li class="menu__item item--has-submenu "><a href="/" data-gtmevent="menu-click" data-gtmvalue="" data-gtmlabel="Technologies" class="navbar-option has-submenu " style="--test:12">Technologies</a><ul class="nav__submenu submenu " style="--badge-hover-color:#007C3E"><span class="submenu__title"><a href="#" class="do-close-subnav">Technologies</a></span><li class="menu__item item--submenu"><div class="submenu__container"><div class="submenu__column submenu__column--1"><h2 class="submenu__heading header--no-margin submenu__heading--big">Technologies</h2><div class="submenu__content">Experience the difference that true engineering can make.</div><a href="https://softwaremill.com/technologies" class="submenu__cta button button--medium ">Discover</a></div><div class="submenu__column submenu__column--2"><ul class="submenu__col submenu__col--1"><li class="submenu__item "><span class="submenu__link-container"><a class="submenu__label " href="https://softwaremill.com/services/backend-development/">Backend</a></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/java-development">Java</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/top-scala-experts">Scala</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/rust-expertise">Rust</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/kotlin-software-development">Kotlin</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/reliable-development-with-typescript">TypeScript</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/modern-development-node-js">Node.js</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/professionally-crafted-applications-with-react">React</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/secure-scalable-applications-with-angular">Angular</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/refined-app-development-with-vue">Vue</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/end-to-end-google-cloud-services/">GCP</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/top-notch-aws-services">AWS</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/azure-expertise">Azure</a></span></li></ul></li><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Observability</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/secure-and-reliable-kubernetes-solutions/">Kubernetes</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/observability-with-grafana/">Grafana</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/opentelemetry/">OpenTelemetry</a></span></li></ul></li></ul><ul class="submenu__col submenu__col--2"><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Data & Streaming</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/services/apache-kafka-services/">Apache Kafka</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/services/partner-with-scylladb-experts">ScyllaDB</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/services/apache-flink-services">Apache Flink</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/services/apache-cassandra-services/">Apache Cassandra</a></span></li></ul></li><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Partnerships</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/confluent-plus-partner/">Confluent</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/observability-with-grafana/">Grafana</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/software-security-with-aikido/">Aikido</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/redis-for-speed-and-scale/">Redis</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/services/partner-with-scylladb-experts/">ScyllaDB</a></span></li></ul></li></ul></div><div class="submenu__column submenu__column--3"><figure class="submenu__figure"><img class="lazy" data-src="/user/themes/softwaremill/assets/uploads/menu comulm 3 (1).png" data-lazy-load /></figure><h3 class="submenu__heading header--no-margin">Success Stories</h3><div class="submenu__content">View our portfolio.</div><a href="https://softwaremill.com/portfolio-clients/" class="submenu__cta button button--medium ">Read more</a></div></div></li></ul></li><li class="menu__item item--has-submenu "><a href="/" data-gtmevent="menu-click" data-gtmvalue="" data-gtmlabel="Company" class="navbar-option has-submenu " style="--test:7">Company</a><ul class="nav__submenu submenu " style="--badge-hover-color:#007C3E"><span class="submenu__title"><a href="#" class="do-close-subnav">Company</a></span><li class="menu__item item--submenu"><div class="submenu__container"><div class="submenu__column submenu__column--1"><h2 class="submenu__heading header--no-margin submenu__heading--big">About us</h2><div class="submenu__content">Our motto: "Engineering. Excellence. Trust."</div><a href="/about-us" class="submenu__cta button button--medium ">Learn</a></div><div class="submenu__column submenu__column--2"><ul class="submenu__col submenu__col--1"><li class="submenu__item "><span class="submenu__link-container"><a class="submenu__label " href="/how-we-work">How we work</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="submenu__label " href="/why-choose-us">Why choose us</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="submenu__label " href="/great-place-to-work">Great place to work</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="submenu__label " href="https://softwaremill.com/team">Meet the team</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="submenu__label " href="https://softwaremill.com/how-we-work#faq">FAQ</a></span></li></ul><ul class="submenu__col submenu__col--2"></ul></div><div class="submenu__column submenu__column--3"><figure class="submenu__figure"><img class="lazy" data-src="/user/themes/softwaremill/assets/uploads/menu comulm 3.png" data-lazy-load /></figure><h3 class="submenu__heading header--no-margin">Join Us</h3><div class="submenu__content">Join the best remote tech company awarded by Great Place to Work.</div><a href="https://softwaremill.com/join-us/" class="submenu__cta button button--medium ">Read more</a></div></div></li></ul></li><li class="menu__item "><a href="https://softwaremill.com/blog/" data-gtmevent="menu-click" data-gtmvalue="https://softwaremill.com/blog" data-gtmlabel="Technology Blog" class="navbar-option " style="--test:15">Technology Blog</a><ul class="nav__submenu submenu " style="--badge-hover-color:#007C3E"><span class="submenu__title"><a href="#" class="do-close-subnav">Technology Blog</a></span><li class="menu__item item--submenu"><div class="submenu__container"><div class="submenu__column submenu__column--1"></div><div class="submenu__column submenu__column--2"><ul class="submenu__col submenu__col--1"></ul><ul class="submenu__col submenu__col--2"></ul></div><div class="submenu__column submenu__column--3"></div></div></li></ul></li><li class="menu__item item--has-submenu "><a href="/" data-gtmevent="menu-click" data-gtmvalue="" data-gtmlabel="Resources" class="navbar-option has-submenu " style="--test:9">Resources</a><ul class="nav__submenu submenu " style="--badge-hover-color:#007C3E"><span class="submenu__title"><a href="#" class="do-close-subnav">Resources</a></span><li class="menu__item item--submenu"><div class="submenu__container"><div class="submenu__column submenu__column--1"><h2 class="submenu__heading header--no-margin submenu__heading--big">Open Source</h2><div class="submenu__content">We create dev tools that a wide audience, including us, uses on a daily basis. Explore them!</div><a href="https://softwaremill.com/open-source/" class="submenu__cta button button--medium ">See our tools</a></div><div class="submenu__column submenu__column--2"><ul class="submenu__col submenu__col--1"><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Knowledge Base</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/blog/">Technology Blog</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/business-insights">Business Insights</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/resources/whitepapers">Ebooks</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/portfolio-clients">Success Stories</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://www.youtube.com/c/SoftwareMillCom" target="_blank" rel="noopener noreferrer">Youtube Channel</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="/technology-trends" target="_blank" rel="noopener noreferrer">Tech Trends of the Decade</a></span></li></ul></li><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Our Tools</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/kafka-visualisation">Kafka Visualisation Tool</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/learn-reactive-programming-with-rx-playground">RX Playground</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://llm-demo.softwaremill.com/" target="_blank" rel="noopener noreferrer">LLM Tool</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/open-source">Open Source</a></span></li></ul></li></ul><ul class="submenu__col submenu__col--2"><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Newsletters</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://softwaremill.com/tapir-tech-update">Tapir Tech Update</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://scalatimes.com/" target="_blank" rel="noopener noreferrer">Scala Times</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="http://eepurl.com/glzeA9" target="_blank" rel="noopener noreferrer">SoftwareMill News</a></span></li></ul></li><li class="submenu__item "><span class="submenu__link-container"><span class="submenu__label ">Conferences</span></span><ul class="submenu__list"><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://www.scalar-conf.com/" target="_blank" rel="noopener noreferrer">Scalar Conference</a></span></li><li class="submenu__item "><span class="submenu__link-container"><a class="" href="https://www.rustikon.dev/" target="_blank" rel="noopener noreferrer">Rustikon Conference</a></span></li></ul></li></ul></div><div class="submenu__column submenu__column--3"><figure class="submenu__figure"><img class="lazy" data-src="/user/themes/softwaremill/assets/uploads/conferences-scalar.jpg" data-lazy-load /></figure><h3 class="submenu__heading header--no-margin">Scalar Conference</h3><div class="submenu__content">Join the biggest Scala event in Central Europe. Est. 2014.</div><a href="https://www.scalar-conf.com/" class="submenu__cta button button--medium " target="_blank" rel="noopener noreferrer">Visit</a></div></div></li></ul></li><li class="menu__item item--cta"><a href="https://softwaremill.com/contact/" data-gtmevent="menu-click" data-gtmvalue="https://softwaremill.com/contact" data-gtmlabel="Talk to us" class="navbar-option " style="--test:10">Talk to us</a><ul class="nav__submenu submenu " style="--badge-hover-color:#007C3E"><span class="submenu__title"><a href="#" class="do-close-subnav">Talk to us</a></span><li class="menu__item item--submenu"><div class="submenu__container"><div class="submenu__column submenu__column--1"></div><div class="submenu__column submenu__column--2"><ul class="submenu__col submenu__col--1"></ul><ul class="submenu__col submenu__col--2"></ul></div><div class="submenu__column submenu__column--3"></div></div></li></ul></li></ul></nav><div class="nav-mobile" data-nav-mobile><div class="nav-mobile__container" data-nav-mobile-container><ul class="nav-mobile__step nav-mobile__step--1 is-active" data-nav-step="1"><li class="nav-mobile__item has-submenu"><button class="nav-mobile__button " data-move-to-step="2" data-menu-title="expertise"> Expertise <figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure></button></li><li class="nav-mobile__item has-submenu"><button class="nav-mobile__button " data-move-to-step="2" data-menu-title="technologies"> Technologies <figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure></button></li><li class="nav-mobile__item has-submenu"><button class="nav-mobile__button " data-move-to-step="2" data-menu-title="company"> Company <figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure></button></li><li class="nav-mobile__item "><a class="nav-mobile__button " href="https://softwaremill.com/blog">Technology Blog</a></li><li class="nav-mobile__item has-submenu"><button class="nav-mobile__button " data-move-to-step="2" data-menu-title="resources"> Resources <figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure></button></li><li class="nav-mobile__item has-cta "><a class="nav-mobile__button nav-mobile__button--cta " href="https://softwaremill.com/contact">Talk to us</a></li></ul><div class="nav-mobile__step nav-mobile__step--2" data-nav-step="2" data-menu-title="expertise"><button class="nav-mobile__back" data-nav-back="1"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Expertise </button><ul class="nav-mobile__list"><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="expertise"> Expertise </button></span></li></ul><ul class="nav-mobile__list"></ul><ul class="nav-mobile__list"><li class="nav-mobile__item"><a href="https://softwaremill.com/why-choose-us/" class="nav-mobile__button">Why Choose Us</a></li></ul><div class="nav-mobile__box nav-mobile__box--1"></div></div><div class="nav-mobile__step nav-mobile__step--2" data-nav-step="2" data-menu-title="technologies"><button class="nav-mobile__back" data-nav-back="1"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Technologies </button><ul class="nav-mobile__list"><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="backend"> Backend </button></span></li><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="observability"> Observability </button></span></li></ul><ul class="nav-mobile__list"><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="data-&-streaming"> Data & Streaming </button></span></li><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="partnerships"> Partnerships </button></span></li></ul><ul class="nav-mobile__list"><li class="nav-mobile__item"><a href="https://softwaremill.com/portfolio-clients/" class="nav-mobile__button">Success Stories</a></li></ul><div class="nav-mobile__box nav-mobile__box--1"><h2 class="nav-mobile__heading nav-mobile__heading--big header--no-margin">Technologies</h2><div class="nav-mobile__content nav-mobile__content header--no-margin">Experience the difference that true engineering can make.</div><a href="https://softwaremill.com/technologies" class="nav-mobile__button nav-mobile__button--cta">Discover</a></div></div><div class="nav-mobile__step nav-mobile__step--2" data-nav-step="2" data-menu-title="company"><button class="nav-mobile__back" data-nav-back="1"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Company </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><a href="/how-we-work" class="nav-mobile__button">How we work</a></span></li><li class="nav-mobile__item "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><a href="/why-choose-us" class="nav-mobile__button">Why choose us</a></span></li><li class="nav-mobile__item "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><a href="/great-place-to-work" class="nav-mobile__button">Great place to work</a></span></li><li class="nav-mobile__item "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><a href="https://softwaremill.com/team" class="nav-mobile__button">Meet the team</a></span></li><li class="nav-mobile__item "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><a href="https://softwaremill.com/how-we-work#faq" class="nav-mobile__button">FAQ</a></span></li></ul><ul class="nav-mobile__list"></ul><ul class="nav-mobile__list"><li class="nav-mobile__item"><a href="https://softwaremill.com/join-us/" class="nav-mobile__button">Join Us</a></li></ul><div class="nav-mobile__box nav-mobile__box--1"><h2 class="nav-mobile__heading nav-mobile__heading--big header--no-margin">About us</h2><div class="nav-mobile__content nav-mobile__content header--no-margin">Our motto: "Engineering. Excellence. Trust."</div><a href="/about-us" class="nav-mobile__button nav-mobile__button--cta">Learn</a></div></div><div class="nav-mobile__step nav-mobile__step--2" data-nav-step="2" data-menu-title="resources"><button class="nav-mobile__back" data-nav-back="1"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Resources </button><ul class="nav-mobile__list"><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="knowledge-base"> Knowledge Base </button></span></li><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="our-tools"> Our Tools </button></span></li></ul><ul class="nav-mobile__list"><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="newsletters"> Newsletters </button></span></li><li class="nav-mobile__item has-submenu "><figure class="nav-mobile__item-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure><span class="nav-mobile__link-container"><button class="nav-mobile__button" data-move-to-step="3" data-menu-title="conferences"> Conferences </button></span></li></ul><ul class="nav-mobile__list"><li class="nav-mobile__item"><a href="https://www.scalar-conf.com/" class="nav-mobile__button">Scalar Conference</a></li></ul><div class="nav-mobile__box nav-mobile__box--1"><h2 class="nav-mobile__heading nav-mobile__heading--big header--no-margin">Open Source</h2><div class="nav-mobile__content nav-mobile__content header--no-margin">We create dev tools that a wide audience, including us, uses on a daily basis. Explore them!</div><a href="https://softwaremill.com/open-source/" class="nav-mobile__button nav-mobile__button--cta">See our tools</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="expertise"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="expertise"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Expertise </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/data-streaming-and-event-driven-systems">Data Streaming & Event-Driven Systems</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/backend-development/">Performance Engineering</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/distributed-platform-architecture">Distributed Platform Architecture </a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/services/observability-services/">Observability & Reliability Engineering </a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Why Choose Us</h2><div class="nav-mobile__content header--no-margin">Looking for a technology partner? Here’s why leading companies trust us to deliver.</div><a href="https://softwaremill.com/why-choose-us/" class="nav-mobile__button nav-mobile__button--cta">Find out</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="backend"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="backend"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Backend </button><ul class="nav-mobile__list"><li class="nav-mobile__item"><a class="nav-mobile__button" href="https://softwaremill.com/services/backend-development/">Backend</a></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/java-development">Java</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/top-scala-experts">Scala</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/rust-expertise">Rust</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/kotlin-software-development">Kotlin</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/reliable-development-with-typescript">TypeScript</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/modern-development-node-js">Node.js</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/professionally-crafted-applications-with-react">React</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/secure-scalable-applications-with-angular">Angular</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/refined-app-development-with-vue">Vue</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/end-to-end-google-cloud-services/">GCP</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/top-notch-aws-services">AWS</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/azure-expertise">Azure</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Success Stories</h2><div class="nav-mobile__content header--no-margin">View our portfolio.</div><a href="https://softwaremill.com/portfolio-clients/" class="nav-mobile__button nav-mobile__button--cta">Read more</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="observability"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="observability"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Observability </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/secure-and-reliable-kubernetes-solutions/">Kubernetes</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/observability-with-grafana/">Grafana</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/opentelemetry/">OpenTelemetry</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Success Stories</h2><div class="nav-mobile__content header--no-margin">View our portfolio.</div><a href="https://softwaremill.com/portfolio-clients/" class="nav-mobile__button nav-mobile__button--cta">Read more</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="data-&-streaming"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="data-&-streaming"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Data & Streaming </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/services/apache-kafka-services/">Apache Kafka</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/services/partner-with-scylladb-experts">ScyllaDB</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/services/apache-flink-services">Apache Flink</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/services/apache-cassandra-services/">Apache Cassandra</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Success Stories</h2><div class="nav-mobile__content header--no-margin">View our portfolio.</div><a href="https://softwaremill.com/portfolio-clients/" class="nav-mobile__button nav-mobile__button--cta">Read more</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="partnerships"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="partnerships"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Partnerships </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/confluent-plus-partner/">Confluent</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/observability-with-grafana/">Grafana</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/software-security-with-aikido/">Aikido</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/redis-for-speed-and-scale/">Redis</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/services/partner-with-scylladb-experts/">ScyllaDB</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Success Stories</h2><div class="nav-mobile__content header--no-margin">View our portfolio.</div><a href="https://softwaremill.com/portfolio-clients/" class="nav-mobile__button nav-mobile__button--cta">Read more</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="knowledge-base"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="knowledge-base"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Knowledge Base </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/blog/">Technology Blog</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/business-insights">Business Insights</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/resources/whitepapers">Ebooks</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/portfolio-clients">Success Stories</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://www.youtube.com/c/SoftwareMillCom" target="_blank" rel="noopener noreferrer">Youtube Channel</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="/technology-trends" target="_blank" rel="noopener noreferrer">Tech Trends of the Decade</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Scalar Conference</h2><div class="nav-mobile__content header--no-margin">Join the biggest Scala event in Central Europe. Est. 2014.</div><a href="https://www.scalar-conf.com/" class="nav-mobile__button nav-mobile__button--cta" target="_blank" rel="noopener noreferrer">Visit</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="our-tools"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="our-tools"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Our Tools </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/kafka-visualisation">Kafka Visualisation Tool</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/learn-reactive-programming-with-rx-playground">RX Playground</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://llm-demo.softwaremill.com/" target="_blank" rel="noopener noreferrer">LLM Tool</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/open-source">Open Source</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Scalar Conference</h2><div class="nav-mobile__content header--no-margin">Join the biggest Scala event in Central Europe. Est. 2014.</div><a href="https://www.scalar-conf.com/" class="nav-mobile__button nav-mobile__button--cta" target="_blank" rel="noopener noreferrer">Visit</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="newsletters"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="newsletters"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Newsletters </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://softwaremill.com/tapir-tech-update">Tapir Tech Update</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://scalatimes.com/" target="_blank" rel="noopener noreferrer">Scala Times</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="http://eepurl.com/glzeA9" target="_blank" rel="noopener noreferrer">SoftwareMill News</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Scalar Conference</h2><div class="nav-mobile__content header--no-margin">Join the biggest Scala event in Central Europe. Est. 2014.</div><a href="https://www.scalar-conf.com/" class="nav-mobile__button nav-mobile__button--cta" target="_blank" rel="noopener noreferrer">Visit</a></div></div><div class="nav-mobile__step nav-mobile__step--3" data-nav-step="3" data-menu-title="conferences"><button class="nav-mobile__back" data-nav-back="2" data-menu-back="conferences"><figure class="nav-mobile__back-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" id="ico-menu-arrow"><path d="M15 18L9 12L15 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> Conferences </button><ul class="nav-mobile__list"><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://www.scalar-conf.com/" target="_blank" rel="noopener noreferrer">Scalar Conference</a></span></li><li class="nav-mobile__item "><span class="nav-mobile__link-container"><a class="nav-mobile__button" href="https://www.rustikon.dev/" target="_blank" rel="noopener noreferrer">Rustikon Conference</a></span></li></ul><div class="nav-mobile__box nav-mobile__box--2"><h2 class="nav-mobile__heading header--no-margin">Scalar Conference</h2><div class="nav-mobile__content header--no-margin">Join the biggest Scala event in Central Europe. Est. 2014.</div><a href="https://www.scalar-conf.com/" class="nav-mobile__button nav-mobile__button--cta" target="_blank" rel="noopener noreferrer">Visit</a></div></div></div></div></section></div></div><!-- /viewport --></header><div class="page-container " id="page-container"><section id="content" role="main" class="main-content content--what-is-cap-theorem"><section class="content__section section-post"><div class="viewport"><div class="post__menu post__menu-mobile"><h4>Contents <figure class="ui-ico"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-944 451.6 30.6 58.4"><path class="svg__ico" fill="none" stroke="#FFF" stroke-width="2" stroke-miterlimit="10" d="M-914.1 452.3l-28.5 28.5 28.5 28.5"/></svg></figure></h4></div><div class="post__menu post__menu-mobile post__menu-mobile--sticky"><h4>Contents <figure class="ui-ico"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-944 451.6 30.6 58.4"><path class="svg__ico" fill="none" stroke="#FFF" stroke-width="2" stroke-miterlimit="10" d="M-914.1 452.3l-28.5 28.5 28.5 28.5"/></svg></figure></h4></div><div class="post__grid grid--content"><article class="post__content text--rich" role="main" data-blog-post data-submenu="1" data-submenu_h1=1 data-submenu_h2=1 data-submenu_h3=><div class="title-area"><h1 class="banner__title">What is CAP Theorem?</h1><div class="taxonomy__tags"><ul class="article__tags tags__list"><li class="list__item item--tag"><a href="/blog/?tag=software development" class="no-border">Software Development</a></li><li class="list__item item--tag"><a href="/blog/?tag=distributed systems" class="no-border">Distributed Systems</a></li><li class="list__item item--tag"><a href="/blog/?tag=cap theorem" class="no-border">CAP Theorem</a></li></ul></div><div class="block-author author--big "><div class="grid--two-columns"><div class="author__meta"><div class="author__images"><a href="/blog/?author=Bartłomiej%20Żyliński" class="author__image author__image--first"><figure alt="webp image" class="employee__image" style="background-image:url('/user/webp/user/themes/softwaremill/assets/team/AnVuxR0WaecJZsT.webp')"></figure></a></div><div class="author__desc"><div class="author__details"><div class="author__line"><a href="/blog/?author=Bartłomiej%20Żyliński" class="author__name">Bartłomiej Żyliński</a><div class="author__socialmedia block-socialmedia author__socialmedia--small"><ul class="socialmedia__list"><li><a target="_blank" href="https://www.linkedin.com/in/bzylinski/"><figure class="socialmedia__ico ui-ico ico--lightblue ico--linkedin"><svg version="1.1" class="ico-linkedin" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-949 471.7 20.9 19.3" enable-background="new -949 471.7 20.9 19.3" xml:space="preserve"><rect class="svg__ico" x="-948.5" y="477.9" fill="#FFFFFF" width="4.1" height="13"/><path class="svg__ico" fill="#FFFFFF" d="M-933.3,477.9c-2.3,0-3.8,1.3-4.1,2.2v-2h-4.6c0.1,1,0,13,0,13h4.6v-7.1c0-0.4,0-0.7,0.1-1.1 c0.3-1,1.2-1.6,2.2-1.6c1.6,0,2.3,1.2,2.3,2.9v6.7h4.7v-7.2C-928.1,479.7-930.4,477.9-933.3,477.9z"/><path class="svg__ico" fill="#FFFFFF" d="M-946.3,471.7c-0.1,0-0.1,0-0.2,0c-1.3-0.1-2.4,0.9-2.5,2.1c0,0,0,0.1,0,0.1c0,1.2,1,2.3,2.2,2.3 c0.1,0,0.1,0,0.2,0c1.2,0.1,2.4-0.8,2.5-2c0-0.1,0-0.2,0-0.2C-944.1,472.8-945.1,471.8-946.3,471.7z"/></svg></figure></a></li><li><a target="_blank" href="https://twitter.com/PaskSoftware"><figure class="socialmedia__ico ui-ico ico--lightblue ico--twitter"><svg version="1.1" class="ico-twitter" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 300 300" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M178.57 127.15 290.27 0h-26.46l-97.03 110.38L89.34 0H0l117.13 166.93L0 300.25h26.46l102.4-116.59 81.8 116.59h89.34M36.01 19.54H76.66l187.13 262.13h-40.66"/></svg></figure></a></li><li><a target="_blank" href="https://github.com/Pask423"><figure class="socialmedia__ico ui-ico ico--lightblue ico--github"><svg version="1.1" class="ico-github" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-946 469 25.9 25" enable-background="new -946 469 25.9 25" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-933.2,469c-7.1,0-12.8,5.8-12.8,12.8c0,5.5,3.6,10.4,8.8,12.1c0.7,0.1,0.9-0.3,0.9-0.6v-2.2 c-3.6,0.8-4.3-1.7-4.3-1.7c-0.2-0.8-0.7-1.5-1.4-1.9c-1.2-0.8,0.1-0.7,0.1-0.7c0.8,0.1,1.6,0.6,2,1.3c0.7,1.3,2.3,1.8,3.6,1.1 c0,0,0.1,0,0.1,0c0-0.7,0.3-1.3,0.8-1.7c-2.8-0.3-5.8-1.4-5.8-6.3c0-1.3,0.4-2.5,1.3-3.4c-0.4-1.1-0.4-2.3,0.2-3.4 c0,0,1.1-0.3,3.5,1.3c1.1-0.3,2.1-0.4,3.2-0.4c1.1,0,2.2,0.2,3.2,0.4c2.4-1.7,3.5-1.3,3.5-1.3c0.4,1.1,0.5,2.3,0.2,3.4 c0.9,0.9,1.3,2.1,1.3,3.4c0,4.9-3,6-5.8,6.3c0.6,0.6,0.9,1.5,0.8,2.4v3.5c0,0.3,0.2,0.8,0.9,0.6c5.2-1.8,8.7-6.6,8.7-12.2 C-920.3,474.7-926.1,469.1-933.2,469z"/></svg></figure></a></li></ul></div></div></div><p class="author__post-info"><span class="date">02 Dec 2021.</span><span class="time-to-read"> 8 minutes read </span></p></div></div><div class="author__social-media"></div></div></div></div><div><p>In short, <strong>CAP is a mathematical theorem describing how our application will behave in the event of network partitioning</strong>. It is one of the most important laws currently in existence. Through the course of this text, I will share more information on this theorem and why it is important. By the time you’re done reading, you’ll also know why CAP may not be enough for modern-day systems.</p><p><img alt="" src="/user/pages/blog/what-is-cap-theorem/blogpost-what-is-cap-theorem.png?g-caa9725f" /></p><p>Before we start, because CAP is inseparably related with distributed systems, I would like to add a quick word about them.</p><h2>What are Distributed Systems?</h2><p>In general, this term can be used to describe all <strong>systems that are spread through more than one node connected over a network</strong> of any type. Work in such a system is split across all nodes existing inside the system. The nodes coordinate their efforts to be more efficient than a single node environment.</p><p>The biggest pro of distributed systems is the ability to scale the system horizontally by adding more and more nodes to the cluster (of course such scaling has its limitations, you can read about them <a href="https://softwaremill.com/math-behind-software/">here</a>). Additionally, such systems greatly reduce (or at least they should) problems with a single point of failure, helping to increase resilience and fault tolerance of the system. </p><p>Despite such advantages, distributed systems bring us to a whole new level of problems. Especially because they significantly increase the complexity of software - occuring issues are more complex and errors become harder to recreate, we can start to notice that bandwidth of our internet connection is important, network is not as reliable as we expected and that for sure the network is not secure.</p><p>Knowing what <a href="https://en.wikipedia.org/wiki/Distributed_computing">distributed systems</a> are, we can move further to the CAP theorem which is inextricably related to such systems.</p><h2>What is CAP Theorem?</h2><p>It is a theorem created by <a href="https://en.wikipedia.org/wiki/Eric_Brewer_(scientist)">Eric Brewer</a>, its first version appeared in 1998 and it was later published as CAP principle in 1999. That is why the CAP theorem is sometimes called the Brewer's theorem. The <a href="https://dl.acm.org/doi/10.1145/564585.564601">formal proof</a> of the principle was published in 2002 by a team from MIT consisting of <a href="https://en.wikipedia.org/wiki/Nancy_Lynch">Nancy Lynch</a> and <a href="https://www.comp.nus.edu.sg/cs/bio/gilbert/">Seth Gilbert</a>. Their publication made Brewer’s CAP a fully qualifying theorem.</p><p>Originally, it was stated as: In any distributed system with state, we can only provide two of the following three guarantees:</p><h3>C as Consistency</h3><p>State should be inline across the system, so every read request to any node in the system should return the same, most recent value or error. In CAP proof, the MIT team used a linearized consistency model, quite a strong and specific one. So talking about consistency in terms of CAP theorem, we should have in mind that we are talking about <a href="https://en.wikipedia.org/wiki/Linearizability">linearized consistency</a>.</p><h3>A as Availability</h3><p>System is available so every request to a non-failing node will receive a non-error response, without any guarantees that the received response is consistent with the state across the system.</p><h3>P as Partition Tolerance</h3><p>Network partitions are a fact of life and we have to expect their occurrence in our system. It must continue to work despite any number of communication breakdowns between its nodes. As for now, there are tools and techniques that can be used to recover gracefully from network partition so we do not have to spend much time on this particular part. However, we still have to spend some time over the topic of partition discovery and management inside our system.</p><p><strong>Be Aware</strong>: Both C and A are totally different concepts in terms of CAP than in terms of <a href="https://en.wikipedia.org/wiki/ACID">ACID</a>.</p><p>In 2012, Brewer added some more information regarding the “two out of three” rule, effectively clarifying the whole concept of choosing between A or C in the inescapable event of network partitioning. After this clarification, the theorem can be expressed as: In any distributed data store, we need to choose if we want to sacrifice consistency or availability in the presence of network partitioning.</p><p>Now you can notice that all trials to picture CAP as triangle or Venn diagrams are somewhat misleading and not quite in line with what the author wanted to present. I believe that the theorem can be better pictured by some image presenting a confrontation or choice.<br /> For example:<br /><img alt="" src="/images/c/a/p/-/1/cap-136adf5c.jpeg?g-caa9725f" /></p><p>Furthermore, to what was stated above, the author added additional clarifications over the topic of the difference in meaning between consistency and availability used in CAP to similar concepts used in <a href="https://en.wikipedia.org/wiki/ACID">ACID</a>.</p><p>In general, <strong>the whole theorem is built around how our application reacts to network partitioning</strong>, which is a thing in almost all modern systems. We have to choose what we want to sacrifice and what to provide in our systems.</p><p>Now when we have more insights into CAP, we can talk about why it is important nowadays.</p><h2>Why is CAP Important?</h2><p>CAP is applied to systems with state distributed in any manner. What it exactly means is that if your system holds any type of internal state within (and is more complex than REST API with the in-memory store), then no matter if you want it or not, CAP can be applied to your system and by extension, your system is limited by CAP’s regulations.</p><p>So no matter if you have plain old monolith or fancy new microservices, if you do not pay enough attention to handling network partitioning, it will bite you hard sooner or later. As stated above, <strong>you have to choose between availability and consistency</strong> while designing your system. The choice between them can be known to some of you as the <strong>CA (AC) axis</strong>.</p><p>According to CAP, we have two (in theory three) ways of designing our systems:</p><p><strong>AP</strong> → systems that decided to sacrifice consistency and choose to provide higher availability</p><p><strong>CP</strong> → systems that decided to sacrifice availability in the name of providing stronger consistency guarantees</p><p>The theoretical third way of designing systems is not exactly in play after clarifications from 2012 and not exactly matching the CAP definition itself. To provide both C and A, systems need to be effectively one node, not quite being a distributed system.</p><p><strong>CA</strong> → systems that decide to provide both consistency and availability while dropping support for handling network partitioning.</p><p>You would probably want to know which way will be best suited for your use case. Before something terrible happens to your system running on production and you wake up in the middle of the night with a message that everything is down while they wanted the <a href="https://en.wikipedia.org/wiki/High_availability#&quot;Nines&quot;">nine nines</a> availability. On the other hand, your system can have an inconsistent state whose recovery will take a long time, because some of the nodes were down and did not get/provide required data. </p><p>To be exact, probably it will not be that bad in any case but your next morning at work after such a breakdown will not be a nice one for sure.</p><p>Now before we start digging into why CAP is not enough for modern-day applications, I will add short info about the <a href="https://en.wikipedia.org/wiki/PACELC_theorem">PACELC</a> theorem proposed by <a href="https://www.cs.umd.edu/~abadi/">Daniel Abadi</a> from Yale, which was probably the first scientific paper around the topic.</p><h2>What is the PACELC Theorem?</h2><p>The theorem was proposed by Abadi in his <a href="http://dbmsmusings.blogspot.com/2010/04/problems-with-cap-and-yahoos-little.html">blog post</a> from 2010 and later clarified in one of his <a href="http://www.cs.umd.edu/~abadi/papers/abadi-pacelc.pdf">further works</a> from 2012. The main point of PACELC is addressing the concern of choosing between <strong>Latency (L)</strong> and <strong>Consistency (C)</strong> when the system is normally up and running and no network partitioning occurs - that is the reason why we have <strong>(E)</strong> as <strong>Else</strong> in the theorem name.</p><p>The whole theorem can be described in such a way: In case of <strong>Network partition (P)</strong>, you have to choose between <strong>Availability (A)</strong> or <strong>Consistency (C)</strong> or <strong>else (E)</strong>, when no partition occurs, you have to choose between <strong>Latency (L)</strong> and <strong>Consistency (C)</strong>. Et voilà, we made a fully-fledged sentence from a 6-letter acronym.</p><p>After pointing out why CAP may not be enough from a scientific perspective, we can start explaining why it may not be enough from a technological and business perspective as well.</p><h2>Why is CAP Not Enough?</h2><p>Firstly, even claims about CAP theorem are more complex than they appear. Even if some systems claim to be fully CP, they can still have areas where they are not consistent. On the other hand, AP systems may have parts where they are not available. Most of the systems try to balance between both, even making different areas of the systems supporting different features depending on exact business requirements implied in a particular area.</p><p>Moreover, with the growing amounts of data and to meet users’ expectations, companies strive to achieve better performance – capable of handling tens of thousands requests per second, making their software faster – with response time in milliseconds and more available – nine nines are the holy grail and target of today's apps. Companies want systems to meet all of these expectations staying as consistent as possible.</p><p>In some cases, it requires moving the borders of what is technically possible. <strong>CAP is simply not enough for present-day large scale applications</strong> and their requirements. We need to have both high availability and reasonable consistency in our systems just because users expect us to provide them and they will stop using our systems if we do not. This is the reason why concepts like <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventual consistency</a>, <a href="https://en.wikipedia.org/wiki/Shard_(database_architecture)">sharding</a>, and <a href="https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type">CRDTs</a> are becoming more and more popular over the years.</p><h2>Conclusion</h2><p>Despite not being the best suited for most modern-day applications, CAP is still one of the most basic and useful laws applying to distributed systems. What is more, the choice between availability and consistency can be helpful also in less complex applications, by giving some general directions to follow while designing your architecture. I hope that I gave you some new and useful insight into the topic of CAP theorem. Thank you for your time.</p></div><div id="jscomments"><div id="disqus_thread"></div><script type="text/javascript">;var disqus_config=function(){this.language='en';this.shortname='softwaremill';this.page.title='What\u0020is\u0020CAP\u0020Theorem\u003F';this.page.url='https\u003A\/\/softwaremill.com\/what\u002Dis\u002Dcap\u002Dtheorem';this.page.identifier='\/what\u002Dis\u002Dcap\u002Dtheorem'};(function(){var e=document.createElement('script');e.type='text/javascript';e.async=!0;e.src='//softwaremill.disqus.com/embed.js';e.setAttribute('data-timestamp',+new Date());(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(e)})();</script><noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript" rel="nofollow noopener noreferrer">comments powered by Disqus.</a></noscript><a href="http://disqus.com" class="dsq-brlink" rel="nofollow noopener noreferrer">Blog Comments powered by <span class="logo-disqus">Disqus</span>.</a><script type="text/javascript">(function(){var e=document.createElement('script');e.async=!0;e.type='text/javascript';e.src='//softwaremill.disqus.com/count.js';(document.getElementsByTagName('HEAD')[0]||document.getElementsByTagName('BODY')[0]).appendChild(e)}());</script></div></article><aside class="post__meta"><div class="post__meta__wrapper table__of__contents"><h4>Contents</h4><div class="post__menu"></div></div></aside></div></div></section></section><footer><related-posts data-related-tag="software development"><template slot="default"><h2 class="related-posts__header"> Related posts </h2></template></related-posts><section class="footer-section"><div class="viewport"><div class="footer-section__top"><div class="footer-section__logo-wrapper"></div><div class="footer-section__blog"><div class="footer-section__cta"><h3 class="footer-section__cta-title header--no-margin"> Latest from our Tech Blog </h3><a class="section__cta button button--transparent button--medium button--white" href="/blog" data-gtmevent="cta-link-click" data-gtmvalue="/blog" data-gtmlabel="Read more"><figure class="button__ico ui-ico"><svg version="1.1" id="ico-arrow" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1002.3 627.3 47 47" enable-background="new -1002.3 627.3 47 47" xml:space="preserve"><line class="svg__ico" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="-1002.3" y1="650.8" x2="-956.7" y2="650.8"/><path class="svg__ico" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M-979.5,673.6l22.8-22.8l-22.8-22.8"/></svg></figure><span class="button__label">Read more</span></a></div><div class="footer-author footer-section__author"><figure class="footer-author__image"><img data-lazy-load data-src="/user/themes/softwaremill/assets/team/lzmygfpbroxy6xq.png?g-caa9725f" alt="webp image"/></figure><div class="footer-author__content"><a class="footer-author__article-title" href="/diskless-kafka-object-storage-kip-1150-and-kafkas-future">Diskless Kafka: What Happens When Brokers Stop Owning the Data?</a><span class="footer-author__name"> Michał Matłoka, 09 Sep 2026 </span></div></div></div></div><div class="footer-section__middle"><div class="footer-section__info"><h3 class="footer-section__company-name header--no-margin">SoftwareMill Sp. z o.o.</h3><span class="footer-section__address">ul. Na Uboczu 8/87<br>02-791 Warszawa<br>Poland</span></div><div class="footer-section__menu"><div class="footer-section__menu-column"><span class="footer-section__menu-heading"> Services </span><ul class="footer-section__menu-options"><li><a class="footer-section__menu-option" href="/services">All services</a></li><li><a class="footer-section__menu-option" href="/services/data-streaming-and-event-driven-systems">Data Streaming & Event-Driven Systems</a></li><li><a class="footer-section__menu-option" href="/services/backend-development/">Performance Engineering</a></li><li><a class="footer-section__menu-option" href="/services/distributed-platform-architecture">Distributed Platform Architecture </a></li><li><a class="footer-section__menu-option" href="/services/observability-services/">Observability & Reliability Engineering </a></li></ul></div><div class="footer-section__menu-column"><span class="footer-section__menu-heading"> Technologies </span><ul class="footer-section__menu-options"><li><a class="footer-section__menu-option" href="/technologies">All technologies</a></li><li><a class="footer-section__menu-option" href="/top-scala-experts">Scala</a></li><li><a class="footer-section__menu-option" href="/services/java-development">Java</a></li><li><a class="footer-section__menu-option" href="/services/rust-expertise">Rust</a></li><li><a class="footer-section__menu-option" href="/services/apache-kafka-services/">Apache Kafka</a></li><li><a class="footer-section__menu-option" href="/services/kotlin-software-development">Kotlin</a></li><li><a class="footer-section__menu-option" href="/services/modern-development-node-js/">Node.js</a></li></ul></div><div class="footer-section__menu-column"><span class="footer-section__menu-heading"> Company </span><ul class="footer-section__menu-options"><li><a class="footer-section__menu-option" href="/about-us">About us</a></li><li><a class="footer-section__menu-option" href="/how-we-work">How we work</a></li><li><a class="footer-section__menu-option" href="/why-choose-us">Why choose us</a></li><li><a class="footer-section__menu-option" href="/join-us">Careers</a></li><li><a class="footer-section__menu-option" href="/great-place-to-work">Great Place To Work</a></li><li><a class="footer-section__menu-option" href="/company-remote">Remote</a></li><li><a class="footer-section__menu-option" href="https://virtuslab.com/#virtuslab-group">VirtusLab Group</a></li></ul></div><div class="footer-section__menu-column"><ul><li><a class="footer-section__menu-heading" href="/contact"> Contact us </a></li><li><a class="footer-section__menu-heading" href="/portfolio-clients"> Success stories </a></li><li><a class="footer-section__menu-heading" href="/blog"> Technology blog </a></li><li><a class="footer-section__menu-heading" href="/resources/whitepapers"> Ebooks </a></li><li><a class="footer-section__menu-heading" href="/open-source"> Open source </a></li><li><a class="footer-section__menu-heading" href="https://softwaremill.us2.list-manage.com/subscribe?u=ba834c562d82d9aba5eaf90ba&id=49adef524d"> Newsletter </a></li><li><a class="footer-section__menu-heading" href="/privacy-policy"> Privacy Policy </a></li></ul></div></div></div><div class="footer-section__bottom"><div class="footer-section__copyrights"><p>&copy; 2026 SoftwareMill. All rights reserved.</p></div><div class="footer-section__socials"><div class="block-socialmedia block-socialmedia--footer "><ul class="socialmedia__list"><li><a target="_blank" href="https://x.com/softwaremill" data-gtmevent="footer-sm-click" data-gtmvalue="x" title="X" aria-label="X"><figure class="socialmedia__ico ui-ico ico--x"><svg version="1.1" class="ico-custom" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 300 300" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M178.57 127.15 290.27 0h-26.46l-97.03 110.38L89.34 0H0l117.13 166.93L0 300.25h26.46l102.4-116.59 81.8 116.59h89.34M36.01 19.54H76.66l187.13 262.13h-40.66"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="facebook" href="https://www.facebook.com/softwaremill" title="Facebook" aria-label="Facebook"><figure class="socialmedia__ico ui-ico ico--facebook"><svg version="1.1" class="ico-facebook" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-953 469.3 12.5 24" enable-background="new -953 469.3 12.5 24" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-949.3,493.3h4.4v-11h3.7l0.5-4.3h-4.2v-2.7c0-1.3,0.3-2,2.1-2h2.3v-3.8 c-1.1-0.1-2.2-0.2-3.3-0.2c-3.2,0-5.5,2-5.5,5.6v3.1h-3.7v4.3h3.7V493.3z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="linkedin" href="https://www.linkedin.com/company/808422" title="LinkedIn" aria-label="LinkedIn"><figure class="socialmedia__ico ui-ico ico--linkedin"><svg version="1.1" class="ico-linkedin" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-949 471.7 20.9 19.3" enable-background="new -949 471.7 20.9 19.3" xml:space="preserve"><rect class="svg__ico" x="-948.5" y="477.9" fill="#FFFFFF" width="4.1" height="13"/><path class="svg__ico" fill="#FFFFFF" d="M-933.3,477.9c-2.3,0-3.8,1.3-4.1,2.2v-2h-4.6c0.1,1,0,13,0,13h4.6v-7.1c0-0.4,0-0.7,0.1-1.1 c0.3-1,1.2-1.6,2.2-1.6c1.6,0,2.3,1.2,2.3,2.9v6.7h4.7v-7.2C-928.1,479.7-930.4,477.9-933.3,477.9z"/><path class="svg__ico" fill="#FFFFFF" d="M-946.3,471.7c-0.1,0-0.1,0-0.2,0c-1.3-0.1-2.4,0.9-2.5,2.1c0,0,0,0.1,0,0.1c0,1.2,1,2.3,2.2,2.3 c0.1,0,0.1,0,0.2,0c1.2,0.1,2.4-0.8,2.5-2c0-0.1,0-0.2,0-0.2C-944.1,472.8-945.1,471.8-946.3,471.7z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="github" href="https://github.com/softwaremill" title="Github" aria-label="Github"><figure class="socialmedia__ico ui-ico ico--github"><svg version="1.1" class="ico-github" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-946 469 25.9 25" enable-background="new -946 469 25.9 25" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-933.2,469c-7.1,0-12.8,5.8-12.8,12.8c0,5.5,3.6,10.4,8.8,12.1c0.7,0.1,0.9-0.3,0.9-0.6v-2.2 c-3.6,0.8-4.3-1.7-4.3-1.7c-0.2-0.8-0.7-1.5-1.4-1.9c-1.2-0.8,0.1-0.7,0.1-0.7c0.8,0.1,1.6,0.6,2,1.3c0.7,1.3,2.3,1.8,3.6,1.1 c0,0,0.1,0,0.1,0c0-0.7,0.3-1.3,0.8-1.7c-2.8-0.3-5.8-1.4-5.8-6.3c0-1.3,0.4-2.5,1.3-3.4c-0.4-1.1-0.4-2.3,0.2-3.4 c0,0,1.1-0.3,3.5,1.3c1.1-0.3,2.1-0.4,3.2-0.4c1.1,0,2.2,0.2,3.2,0.4c2.4-1.7,3.5-1.3,3.5-1.3c0.4,1.1,0.5,2.3,0.2,3.4 c0.9,0.9,1.3,2.1,1.3,3.4c0,4.9-3,6-5.8,6.3c0.6,0.6,0.9,1.5,0.8,2.4v3.5c0,0.3,0.2,0.8,0.9,0.6c5.2-1.8,8.7-6.6,8.7-12.2 C-920.3,474.7-926.1,469.1-933.2,469z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="youtube" href="https://www.youtube.com/c/SoftwareMillCom" title="YouTube" aria-label="YouTube"><figure class="socialmedia__ico ui-ico ico--yt"><svg version="1.1" class="ico-yt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-948.5 471.7 23.5 17.8" enable-background="new -948.5 471.7 23.5 17.8" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-926.6,473.5c-0.6-0.6-1.4-1-2.3-1c-3.2-0.3-7.8-0.3-7.8-0.3s-4.8,0-7.8,0.3 c-0.9,0-1.7,0.4-2.3,1c-0.5,0.7-0.8,1.5-0.9,2.4c-0.2,1.3-0.2,2.5-0.3,3.8v1.9c0,1.3,0.1,2.6,0.3,3.8c0.1,0.8,0.4,1.6,0.9,2.3 c0.7,0.6,1.6,1,2.5,1c1.8,0.2,7.7,0.2,7.7,0.2s4.8,0,7.8-0.2c0.9,0,1.7-0.4,2.3-1c0.5-0.7,0.8-1.5,0.9-2.4c0,0,0.2-1.8,0.2-3.7v-1.8 c0-1.3-0.1-2.6-0.3-3.9C-925.8,475-926.1,474.2-926.6,473.5z M-939.5,484.8v-8.4l7,4.2L-939.5,484.8z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="instagram" href="https://instagram.com/softwaremill_vibes" title="Instagram" aria-label="Instagram"><figure class="socialmedia__ico ui-ico ico--instagram"><?xml version="1.0" encoding="UTF-8" standalone="no"?><svg viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"><g class="svg__ico" fill="#FFFFFF"><path d="M127.999746,23.06353 C162.177385,23.06353 166.225393,23.1936027 179.722476,23.8094161 C192.20235,24.3789926 198.979853,26.4642218 203.490736,28.2166477 C209.464938,30.5386501 213.729395,33.3128586 218.208268,37.7917319 C222.687141,42.2706052 225.46135,46.5350617 227.782844,52.5092638 C229.535778,57.0201472 231.621007,63.7976504 232.190584,76.277016 C232.806397,89.7746075 232.93647,93.8226147 232.93647,128.000254 C232.93647,162.177893 232.806397,166.225901 232.190584,179.722984 C231.621007,192.202858 229.535778,198.980361 227.782844,203.491244 C225.46135,209.465446 222.687141,213.729903 218.208268,218.208776 C213.729395,222.687649 209.464938,225.461858 203.490736,227.783352 C198.979853,229.536286 192.20235,231.621516 179.722476,232.191092 C166.227425,232.806905 162.179418,232.936978 127.999746,232.936978 C93.8200742,232.936978 89.772067,232.806905 76.277016,232.191092 C63.7971424,231.621516 57.0196391,229.536286 52.5092638,227.783352 C46.5345536,225.461858 42.2700971,222.687649 37.7912238,218.208776 C33.3123505,213.729903 30.538142,209.465446 28.2166477,203.491244 C26.4637138,198.980361 24.3784845,192.202858 23.808908,179.723492 C23.1930946,166.225901 23.0630219,162.177893 23.0630219,128.000254 C23.0630219,93.8226147 23.1930946,89.7746075 23.808908,76.2775241 C24.3784845,63.7976504 26.4637138,57.0201472 28.2166477,52.5092638 C30.538142,46.5350617 33.3123505,42.2706052 37.7912238,37.7917319 C42.2700971,33.3128586 46.5345536,30.5386501 52.5092638,28.2166477 C57.0196391,26.4642218 63.7971424,24.3789926 76.2765079,23.8094161 C89.7740994,23.1936027 93.8221066,23.06353 127.999746,23.06353 M127.999746,0 C93.2367791,0 88.8783247,0.147348072 75.2257637,0.770274749 C61.601148,1.39218523 52.2968794,3.55566141 44.1546281,6.72008828 C35.7374966,9.99121548 28.5992446,14.3679613 21.4833489,21.483857 C14.3674532,28.5997527 9.99070739,35.7380046 6.71958019,44.1551362 C3.55515331,52.2973875 1.39167714,61.6016561 0.769766653,75.2262718 C0.146839975,88.8783247 0,93.2372872 0,128.000254 C0,162.763221 0.146839975,167.122183 0.769766653,180.774236 C1.39167714,194.398852 3.55515331,203.703121 6.71958019,211.845372 C9.99070739,220.261995 14.3674532,227.400755 21.4833489,234.516651 C28.5992446,241.632547 35.7374966,246.009293 44.1546281,249.28042 C52.2968794,252.444847 61.601148,254.608323 75.2257637,255.230233 C88.8783247,255.85316 93.2367791,256 127.999746,256 C162.762713,256 167.121675,255.85316 180.773728,255.230233 C194.398344,254.608323 203.702613,252.444847 211.844864,249.28042 C220.261995,246.009293 227.400247,241.632547 234.516143,234.516651 C241.632039,227.400755 246.008785,220.262503 249.279912,211.845372 C252.444339,203.703121 254.607815,194.398852 255.229725,180.774236 C255.852652,167.122183 256,162.763221 256,128.000254 C256,93.2372872 255.852652,88.8783247 255.229725,75.2262718 C254.607815,61.6016561 252.444339,52.2973875 249.279912,44.1551362 C246.008785,35.7380046 241.632039,28.5997527 234.516143,21.483857 C227.400247,14.3679613 220.261995,9.99121548 211.844864,6.72008828 C203.702613,3.55566141 194.398344,1.39218523 180.773728,0.770274749 C167.121675,0.147348072 162.762713,0 127.999746,0 Z M127.999746,62.2703115 C91.698262,62.2703115 62.2698034,91.69877 62.2698034,128.000254 C62.2698034,164.301738 91.698262,193.730197 127.999746,193.730197 C164.30123,193.730197 193.729689,164.301738 193.729689,128.000254 C193.729689,91.69877 164.30123,62.2703115 127.999746,62.2703115 Z M127.999746,170.667175 C104.435741,170.667175 85.3328252,151.564259 85.3328252,128.000254 C85.3328252,104.436249 104.435741,85.3333333 127.999746,85.3333333 C151.563751,85.3333333 170.666667,104.436249 170.666667,128.000254 C170.666667,151.564259 151.563751,170.667175 127.999746,170.667175 Z M211.686338,59.6734287 C211.686338,68.1566129 204.809755,75.0337031 196.326571,75.0337031 C187.843387,75.0337031 180.966297,68.1566129 180.966297,59.6734287 C180.966297,51.1902445 187.843387,44.3136624 196.326571,44.3136624 C204.809755,44.3136624 211.686338,51.1902445 211.686338,59.6734287 Z"></path></g></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="slideshare" href="http://www.slideshare.net/softwaremill" title="Slideshare" aria-label="Slideshare"><figure class="socialmedia__ico ui-ico ico--slideshare"><svg version="1.1" class="ico-slideshare" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-944 470.1 30.9 20.9" enable-background="new -944 470.1 30.9 20.9" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-923.9,476.9c1.9,0,3.4-1.5,3.4-3.4c0,0,0-0.1,0-0.1c0-1.9-1.5-3.4-3.4-3.4c-1.9,0-3.4,1.5-3.4,3.4 c0,0,0,0,0,0C-927.3,475.4-925.8,476.9-923.9,476.9z"/><path class="svg__ico" fill="#FFFFFF" d="M-932.9,476.9C-932.9,476.9-932.8,476.9-932.9,476.9c1.9,0,3.5-1.5,3.5-3.4c0,0,0-0.1,0-0.1 c0-1.9-1.5-3.4-3.4-3.4c-1.9,0-3.4,1.5-3.4,3.4c0,0,0,0,0,0C-936.3,475.4-934.8,476.9-932.9,476.9z"/><path class="svg__ico" fill="#FFFFFF" d="M-914.6,475.8c-1,1.2-5.4,2.6-6,2.6h-4.8c-1.1,0-2.9,0.3-2.9,1v0.6c-0.1,0-0.1-0.1-0.2-0.1 c-0.7-0.9-1.9-1.3-3-1.3c-2.3,0-4.5-0.2-6.8-0.7c-2-0.4-5.3-3.3-5.6-2.5c-0.3,0.8,0.3,1.3,1.3,2.5c1.1,1.3,5.5,3,5.5,3v5.3 c0,1.6,3.2,3.9,4.8,3.9s2.9-1.1,2.9-1.9v-4.9c0.3,0.1,0.7,0.3,1,0.3v4.5c0,0.8,1.1,2.8,4.5,2.8c3.3,0,4.3-4,4.3-4.7v-4.9 c2.3-1.3,4.8-1.9,6-4.2C-912.5,475.1-913.5,474.7-914.6,475.8z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="clutch" href="https://clutch.co/profile/softwaremill" title="Clutch" aria-label="Clutch"><figure class="socialmedia__ico ui-ico ico--clutch"><svg version="1.1" class="ico-clutch" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-949 469.5 20.8 23.5" enable-background="new -949 469.5 20.8 23.5" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-937.1,487.8c-3.6,0.1-6.6-2.7-6.7-6.2c0-0.1,0-0.2,0-0.3c-0.1-3.5,2.7-6.4,6.2-6.5c0.2,0,0.4,0,0.6,0 c2,0,3.9,0.8,5.2,2.3l3.7-3.7c-2.3-2.5-5.5-3.9-8.9-3.9c-7.6,0-12,5.2-12,11.6c-0.1,6.4,4.9,11.7,11.3,11.8c0.2,0,0.4,0,0.6,0 c3.4,0,6.7-1.4,8.9-3.9l-3.7-3.6C-933.2,487-935.1,487.8-937.1,487.8z"/><path class="svg__ico" fill="#FFFFFF" d="M-937.4,477.4c-2.1,0-3.9,1.7-3.9,3.9c0,0,0,0,0,0c0,2.1,1.7,3.9,3.9,3.9c2.1,0,3.9-1.7,3.9-3.9 C-933.5,479.2-935.3,477.4-937.4,477.4C-937.4,477.4-937.4,477.4-937.4,477.4z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="medium" href="https://blog.softwaremill.com/?gi=854e7326b87a" title="Medium" aria-label="Medium"><figure class="socialmedia__ico ui-ico ico--medium"><svg version="1.1" class="ico-medium" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-947 469 25 25" enable-background="new -947 469 25 25" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M-934.5,469c-6.9,0-12.5,5.6-12.5,12.5c0,6.9,5.6,12.5,12.5,12.5c6.9,0,12.5-5.6,12.5-12.5c0,0,0,0,0,0 C-922,474.6-927.6,469-934.5,469z M-927.4,477.3L-927.4,477.3h-0.6c-0.3,0-0.5,0.2-0.5,0.5v7.1c0.1,0.2,0.3,0.4,0.5,0.5h0.6v1.7 h-5.2v-1.7h1.1v-7.4h-0.1l-2.5,9.1h-2l-2.5-9.1h-0.1v7.4h1.1v1.7h-4.3v-1.7h0.6c0.3,0,0.5-0.2,0.5-0.5v-7.1 c-0.1-0.3-0.3-0.5-0.5-0.5h-0.6v-1.7h5.4l1.8,6.6h0l1.8-6.6h5.4V477.3z"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="mastodon" href="https://softwaremill.social/@softwaremill" title="Mastodon" aria-label="Mastodon"><figure class="socialmedia__ico ui-ico ico--mastodon"><svg class="ico-mastodon" viewBox="0 0 24 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M17.1055 19.6109C20.3293 19.2259 23.1363 17.2396 23.4891 15.4246C24.045 12.5655 23.9991 8.44741 23.9991 8.44741C23.9991 2.86589 20.3422 1.22986 20.3422 1.22986C18.4984 0.383015 15.3322 0.0268929 12.0429 0H11.962C8.67265 0.0268929 5.50858 0.383015 3.66462 1.22986C3.66462 1.22986 0.00760707 2.86589 0.00760707 8.44741C0.00760707 8.78578 0.00585817 9.14168 0.0040375 9.51218C-0.00101886 10.5411 -0.0066287 11.6827 0.0231328 12.8743C0.155934 18.3327 1.02385 23.7123 6.07056 25.0481C8.39748 25.664 10.3953 25.7929 12.0043 25.7044C14.9222 25.5427 16.5602 24.6631 16.5602 24.6631L16.464 22.5461C16.464 22.5461 14.3788 23.2035 12.037 23.1234C9.7169 23.0438 7.26757 22.8732 6.89232 20.0246C6.85766 19.7744 6.84033 19.5069 6.84033 19.2259C6.84033 19.2259 9.11791 19.7826 12.0043 19.9149C13.7693 19.9958 15.4244 19.8114 17.1055 19.6109ZM19.6855 15.6387V8.88041C19.6855 7.49917 19.3338 6.40155 18.6276 5.5895C17.899 4.77745 16.945 4.36116 15.7608 4.36116C14.3906 4.36116 13.353 4.88779 12.6671 5.94118L12 7.05918L11.3331 5.94118C10.647 4.88779 9.60945 4.36116 8.2393 4.36116C7.05504 4.36116 6.10104 4.77745 5.37258 5.5895C4.66615 6.40155 4.31447 7.49917 4.31447 8.88041V15.6387H6.99197V9.07905C6.99197 7.69629 7.57377 6.99444 8.73751 6.99444C10.0242 6.99444 10.6692 7.82701 10.6692 9.4733V13.0638H13.3309V9.4733C13.3309 7.82701 13.9758 6.99444 15.2625 6.99444C16.4262 6.99444 17.008 7.69629 17.008 9.07905V15.6387H19.6855Z" fill="#FFFFFF" class="svg__ico"/></svg></figure></a></li><li><a target="_blank" data-gtmevent="footer-sm-click" data-gtmvalue="rss" href="https://softwaremill.com/blog.rss" title="RSS" aria-label="RSS"><figure class="socialmedia__ico ui-ico ico--rss"><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path class="svg__ico" d="M13.5495 16C13.5495 8.979 7.771 3.2005 0.75 3.2005V0C9.526 0 16.75 7.224 16.75 16H13.5495ZM2.9425 11.6095C3.52512 11.6106 4.08358 11.8425 4.49555 12.2544C4.90753 12.6664 5.13944 13.2249 5.1405 13.8075C5.1405 15.016 4.1485 16 2.9375 16C1.729 16 0.75 15.018 0.75 13.8075C0.75 12.597 1.7345 11.6095 2.9425 11.6095ZM11.357 16H8.245C8.245 11.888 4.862 8.5025 0.75 8.5025V5.393C6.5675 5.393 11.357 10.182 11.357 16Z" fill="white"/></g><defs><clipPath id="clip0"><rect width="16" height="16" fill="white" transform="translate(0.75)"/></clipPath></defs></svg></figure></a></li><li><a target="_blank" href="https://bsky.app/profile/softwaremill.com" data-gtmevent="footer-sm-click" data-gtmvalue="bluesky" title="Bluesky" aria-label="Bluesky"><figure class="socialmedia__ico ui-ico ico--bluesky"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" class="ico-bluesky" xml:space="preserve"><path class="svg__ico" fill="#FFFFFF" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805zm36.254 0C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745z"/></svg></figure></a></li></ul></div></div></div></div></section></footer></div><script src="/user/themes/softwaremill/_/dist/main.9b075bb9.js" type="module"></script><script></script><script type="application/ld+json">
{"@context":"http://schema.org","@type":"Article","headline":"What is CAP Theorem?","mainEntityOfPage":{"@type":"WebPage","url":"https://softwaremill.com"},"articleBody":"In short, CAP is a mathematical theorem describing how our application will behave in the event of network partitioning. It is one of the most important laws currently in existence. Through the course of this text, I will share more information on this theorem and why it is important. By the time you\u2019re done reading,","datePublished":"2021-12-02T10:26:00+00:00","dateModified":"2026-09-09T07:52:23+00:00","description":"What is CAP Theorem and why is it important? We're having a look at this law and exploring whether it applies to modern-day systems.","author":"Bart\u0142omiej \u017byli\u0144ski","publisher":{"@type":"Organization","name":"SoftwareMill"},"image":{"@type":"ImageObject","url":"https://softwaremill.com/user/pages/blog/what-is-cap-theorem/blogpost-what-is-cap-theorem.png?g-caa9725f","width":"1920","height":"1080"}}</script><script type="application/ld+json">
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"SoftwareMill","item":"https://softwaremill.com/"},{"@type":"ListItem","position":2,"name":"What Is Cap Theorem","item":"https://softwaremill.com/what-is-cap-theorem/"}]}</script><script></script><script>;const tweetButton=document.getElementById('tweet-button');if(tweetButton){tweetButton.addEventListener('click',function(t){t.preventDefault();twitterWindow=window.open('https://twitter.com/share?text='+document.getElementById('tweet-content').textContent+'&url='+document.URL,'twitter-popup','height=350,width=600');if(twitterWindow.focus){twitterWindow.focus()}})};</script><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><!-- Scripts to test alternatives to GA4 --><script defer data-domain="softwaremill.com" src="https://plausible.io/js/script.js"></script><script>(function(e,n){window.ldfdr=window.ldfdr||function(){(ldfdr._q=ldfdr._q||[]).push([].slice.call(arguments))};(function(t,r){fs=t.getElementsByTagName(r)[0];function c(e){var n=t.createElement(r);n.src=e;n.async=1;fs.parentNode.insertBefore(n,fs)};c('https://sc.lfeeder.com/lftracker_v1_'+e+(n?'_'+n:'')+'.js')})(document,'script')})('ywVkO4Xojzx7Z6Bj');</script></body></html>