<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
    <title>Distributed ACID Transactions - Apache Ignite</title>
    <meta
      name="description"
      content="Apache Ignite can operate in a strongly consistent mode with full support for distributed ACID transactions. Ignite is an ACID compliant storage engine which can handle possible distributed failures properly to avoid data inconsistencies cluster-wide."
    />
    <link rel="canonical" href="https://ignite.apache.org/features/acid-transactions.html" />
    <meta property="og:title" content="Distributed ACID Transactions - Apache Ignite" />
    <meta property="og:type" content="article" />
    <meta property="og:url" content="https://ignite.apache.org/features/acid-transactions.html" />
    <meta property="og:image" content="/img/og-pic.png" />
    <meta
      property="og:description"
      content="Apache Ignite can operate in a strongly consistent mode with full support for distributed ACID transactions. Ignite is an ACID compliant storage engine which can handle possible distributed failures properly to avoid data inconsistencies cluster-wide."
    />
    <link rel="stylesheet" href="/js/vendor/hystmodal/hystmodal.min.css?ver=0.7" />
    <link rel="stylesheet" href="/css/utils.css?ver=0.7" />
    <link rel="stylesheet" href="/css/site.css?ver=0.7" />
    <link rel="stylesheet" href="../css/native-persistence.css?ver=0.7" />
    <link rel="stylesheet" href="../css/acid-transactions.css?ver=0.7" />
    <link rel="stylesheet" href="/css/media.css?ver=0.7" media="only screen and (max-width:1199px)" />
    <link rel="icon" type="image/png" href="/img/favicon.png" />
  </head>
  <body>
    <!-- Yandex.Metrika counter -->
    <script type="text/javascript">
      (function (m, e, t, r, i, k, a) {
        m[i] =
          m[i] ||
          function () {
            (m[i].a = m[i].a || []).push(arguments);
          };
        m[i].l = 1 * new Date();
        (k = e.createElement(t)), (a = e.getElementsByTagName(t)[0]), (k.async = 1), (k.src = r), a.parentNode.insertBefore(k, a);
      })(window, document, 'script', 'https://mc.yandex.ru/metrika/tag.js', 'ym');

      ym(72949126, 'init', {
        clickmap: true,
        trackLinks: true,
        accurateTrackBounce: true,
        webvisor: true,
      });
    </script>
    <noscript
      ><div><img src="https://mc.yandex.ru/watch/72949126" style="position: absolute; left: -9999px" alt="" /></div
    ></noscript>
    <!-- /Yandex.Metrika counter -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag('js', new Date());
      gtag('config', 'UA-61232409-1');
    </script>
    <!-- MOBILE MENU START -->
    <div class="hystmodal" id="jsMenuModal" aria-hidden="true">
      <div class="hystmodal__wrap">
        <div class="hystmodal__window mobmenu" role="dialog" aria-modal="true">
          <button data-hystclose class="hystmodal__close">Close</button>
          <div class="mobmenu__wrap">
            <a href="/" class="mobmenu__logo"><img src="/img/logo.svg" alt="Логотип" /></a>
            <div class="mobmenu__menu">
              <ul>
                <li>
                  <a href="/docs/latest/">Quick Start</a>
                </li>
                <li>
                  <a href="/resources.html">Resources</a>
                </li>
                <li>
                  <a href="/faq.html">FAQ</a>
                </li>
                <li>
                  <span class="mobmenu__parent"> <a href="/use-cases.html">Use Cases</a><button class="mobmenu__opener"></button> </span>
                  <ul>
                    <li>
                      <a href="/use-cases/in-memory-cache.html">In-Memory Cache</a>
                    </li>
                    <li>
                      <a href="/use-cases/in-memory-data-grid.html">In-Memory Data Grid</a>
                    </li>
                    <li>
                      <a href="/use-cases/in-memory-database.html">In-Memory Database</a>
                    </li>
                    <li>
                      <a href="/use-cases/key-value-store.html">Key-Value Store</a>
                    </li>
                    <li>
                      <a href="/use-cases/high-performance-computing.html">High Performance Computing</a>
                    </li>
                    <li>
                      <a href="/use-cases/digital-integration-hub.html">Digital Integration Hub</a>
                    </li>
                    <li>
                      <a href="/use-cases/spark-acceleration.html">Spark Acceleration</a>
                    </li>
                    <li>
                      <a href="/use-cases/hadoop-acceleration.html">Hadoop Acceleration</a>
                    </li>
                    <li>
                      <a href="/use-cases.html">View All</a>
                    </li>
                  </ul>
                </li>

                <li>
                  <span class="mobmenu__parent"> <a href="/features/">Features</a><button class="mobmenu__opener"></button> </span>
                  <ul>
                    <li>
                      <a href="/arch/multi-tier-storage.html">Multi-Tier Storage</a>
                    </li>
                    <li>
                      <a href="/arch/native-persistence.html">Native Persistence</a>
                    </li>
                    <li>
                      <a href="/features/sql.html">Distributed SQL</a>
                    </li>
                    <li>
                      <a href="/features/key-value-apis.html">Key-Value APIs</a>
                    </li>
                    <li>
                      <a href="/features/acid-transactions.html">ACID Transactions</a>
                    </li>
                    <li>
                      <a href="/features/compute-apis.html">Compute APIs</a>
                    </li>
                    <li>
                      <a href="/features/service-apis.html">Services</a>
                    </li>
                    <li>
                      <a href="/features/machinelearning.html">Machine Learning</a>
                    </li>
                    <li>
                      <a href="/features/streaming.html">Real-Time Streaming APIs</a>
                    </li>
                    <li>
                      <a href="/docs/latest/messaging">Messaging</a>
                    </li>
                    <li>
                      <a href="/docs/latest/key-value-api/continuous-queries">Continuous Queries</a>
                    </li>
                    <li>
                      <a href="/features/index.html">View All</a>
                    </li>
                  </ul>
                </li>

                <li>
                  <a href="/community.html">Community</a>
                  <ul class="isdefault">
                    <li><a href="/community.html">Project Info</a></li>
                    <li><a href="/events.html">Events</a></li>
                  </ul>
                </li>
                <li>
                  <a href="/use-cases/provenusecases.html">Powered by</a>
                </li>
                <li>
                  <a href="/docs/latest/">Docs</a>
                </li>
              </ul>
              <a href="/download.cgi" class="button mobmenu__button">Download Ignite 2.11</a>
            </div>
            <!-- //mobmenu__menu -->
          </div>
          <!-- //mobmenu__wrap -->
        </div>
        <!-- //mobmenu -->
      </div>
    </div>
    <!-- MOBILE MENU END -->
    <header class="hdr hdr__blue jsHdrBase">
      <div class="hdr__wrap flexi jsHdrLine">
        <button class="hdr__burger" data-menumodal="#jsMenuModal"><img src="/img/menu.svg" alt="" /></button
        ><a class="hdr__logo" href="/"><img class="hdr__logoimg hdr__logo--white" src="/img/logo-white.svg" alt="" /><img class="hdr__logoimg hdr__logo--black" src="/img/logo.svg" alt="" /></a
        ><a class="button hdr__button" href="/download.cgi">Download Ignite 2.11 </a>
        <nav class="hdrmenu">
          <ul class="flexi">
            <li class="js-hasdrop"><a class="hdrmenu--expanded" href="/" data-panel="getStarted">Get Started</a></li>
            <li class="js-hasdrop"><a class="hdrmenu__current hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
            <li class="js-hasdrop"><a class="hdrmenu--expanded" href="/community.html" data-panel="community">Community</a></li>
            <li><a href="/use-cases/provenusecases.html" data-panel="">Powered By</a></li>
            <li><a href="///ignite.apache.org/docs/latest/" data-panel="">Docs</a></li>
          </ul>
        </nav>
        <div class="dropmenu">
          <div class="dropmenu__panel" data-menupanel="getStarted">
            <div class="container dropmenu1__grid">
              <div class="dropmenu1__buttonwrap">&nbsp;</div>
              <div class="dropmenu__box dropmenu__box--buttonin">
                <a class="dropmenu__redbutton" href="https://ignite.apache.org/docs/latest/"> <img src="/img/menu/icon-red-rocket.svg" alt="" /><span>Quick Start Guide</span></a>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/resources.html"><img src="/img/menu/icon-resources.svg" alt="" /><span>Resources</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/faq.html"><img src="/img/menu/icon-question.svg" alt="" /><span>FAQ</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box">
                <p class="capstext"><a class="dropmenu__capslink" href="/use-cases.html">USE CASES</a></p>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/in-memory-cache.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Cache</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/in-memory-data-grid.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Data Grid</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/in-memory-database.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Database</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/key-value-store.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Key-Value Store</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box no-border">
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/high-performance-computing.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>High-Performance Computing</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/digital-integration-hub.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Digital Integration Hub</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/spark-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Spark Acceleration</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/use-cases/hadoop-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Hadoop Acceleration</span></a>
                  </li>
                </ul>
              </div>
            </div>
            <!-- /.dropmenu1__grid-->
            <div class="panelmorelinkwrap panelmorelinkwrap--end container"><a class="panellink" href="/use-cases.html">View all</a></div>
          </div>
          <!-- /.dropmenu__panel-->
          <div class="dropmenu__panel" data-menupanel="features">
            <div class="container dropmenu2__grid">
              <div class="dropmenu__box">
                <div class="capstext">MULTI-TIER STORAGE</div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/arch/multi-tier-storage.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Multi-Tier Storage</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/arch/native-persistence.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Native Persistence</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box">
                <div class="capstext">ESSENTIAL Developer APIs</div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/features/sql.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Distributed SQL</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/features/key-value-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Key-Value APIs</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/features/acid-transactions.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>ACID Transactions</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box">
                <div class="capstext">High-Performance <br />Computing APIs</div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/features/compute-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Compute APIs</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/features/service-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Services</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/features/machinelearning.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Machine Learning</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box">
                <div class="capstext">Real-Streaming APIs</div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/features/streaming.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Real-Time Streaming APIs</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/messaging"><img src="/img/menu/icon-cube.svg" alt="" /><span>Messaging</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries"><img src="/img/menu/icon-cube.svg" alt="" /><span>Continuous Queries</span></a>
                  </li>
                </ul>
              </div>
            </div>
            <!-- /.dropmenu2__grid-->
            <div class="panelmorelinkwrap"><a class="panellink" href="/features/">View all</a></div>
          </div>
          <!-- /.dropmenu__panel-2-->
          <div class="dropmenu__panel" data-menupanel="community">
            <div class="container dropmenu3__grid">
              <div class="dropmenu__box">
                <div class="capstext"><a class="dropmenu__capslink" href="/community.html">Project Info</a></div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/community.html#story"><img src="/img/menu/icon-clip.svg" alt="" /><span>Apache Ignite Story</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/community.html#community"><img src="/img/menu/icon-comment.svg" alt="" /><span>Meet The Community</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box no-border">
                <div class="capstext">&nbsp;</div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/community.html#contributing"><img src="/img/menu/icon-puzzle.svg" alt="" /><span>Start Contributing</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/community.html#faq"><img src="/img/menu/icon-question.svg" alt="" /><span>Ask Questions</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box">
                <div class="capstext"><a class="dropmenu__capslink" href="/events.html">Events</a></div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/events.html#summit"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Apache Ignite Summit</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/events.html#meetups"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Meetups</span></a>
                  </li>
                </ul>
              </div>
              <div class="dropmenu__box no-border">
                <div class="capstext">&nbsp;</div>
                <ul class="dropmenu__menu">
                  <li>
                    <a class="dropmenu__iconitem" href="/events.html#upcoming"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Upcoming Events</span></a>
                  </li>
                  <li>
                    <a class="dropmenu__iconitem" href="/events.html#past"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Past Events</span></a>
                  </li>
                </ul>
              </div>
            </div>
            <!-- /.dropmenu3__grid-->
          </div>
          <!-- /.dropmenu__panel-->
        </div>
        <!-- /.dropmeu-->
      </div>
    </header>
    <div class="dropmenu__back"></div>
    <header class="hdrfloat hdr__white jsHdrFloatBase"></header>
    <section class="innerhero">
      <div class="container innerhero__cont">
        <div class="innerhero__main">
          <div class="innerhero__pre pb-5">Apache Ignite</div>
          <h1 class="h1 innerhero__h1">Distributed ACID <br />Transactions</h1>
          <div class="innerhero__descr pt-4 h5">Classical ACID transactions that let you update distributed data <br />consistently, durably and with in-memory speed</div>
          <div class="innerhero__action"><a class="button innerhero__button" href="https://ignite.apache.org/docs/latest/index">Start Coding</a></div>
        </div>
        <img class="innerhero__pic innerhero__pic--acid" src="/img/features/acid/hero.svg" alt="Distributed ACID transactions" />
      </div>
    </section>
    <!-- /.innerhero-->
    <section class="acid1 container">
      <h2 class="acid1__h2 h4">Update multiple records from different tables that span across many cluster nodes</h2>
      <div class="acid1__wrap flexi">
        <div class="acid1__item">
          <div class="acid1__title fz20">Consistency</div>
          <div class="acid1__text pt-3"><p>Ignite transactional APIs are used by&nbsp;banks to&nbsp;implement payments services that transfer money between accounts in&nbsp;real-time.</p></div>
        </div>
        <div class="acid1__item">
          <div class="acid1__title fz20">Durability</div>
          <div class="acid1__text pt-3"><p>Multi-tier storage persists changes durably to&nbsp;disk. Committed transactions always survive failures, incomplete transactions are rolled back.</p></div>
        </div>
        <div class="acid1__item">
          <div class="acid1__title fz20">Fault-Tolerance</div>
          <div class="acid1__text pt-3"><p>The transactional engine avoids inconsistencies even if&nbsp;your transaction is&nbsp;failed in&nbsp;the middle of&nbsp;a&nbsp;commit.</p></div>
        </div>
      </div>
    </section>
    <!-- /.acid1-->
    <section class="acid2 container">
      <h2 class="acid2__h2">
        To guarantee data consistency, durability and fault-tolerance<br />
        <strong>Ignite implements a two-phase commit protocol</strong>
      </h2>
      <div class="acid2__wrap flexi pt-5">
        <div class="acid2__main">
          <p>In distributed systems, a transaction usually spans across multiple cluster nodes.</p>
          <p>To handle possible distributed failures properly and avoid data inconsistencies cluster-wide, a two-phase commit protocol (2PC) is used.</p>
          <h3 class="acid2__subtitle h5 pb-2">How ACID transactions work</h3>
          <p>Whenever the records get updated within a&nbsp;transaction, Ignite keeps the transactional state in&nbsp;a&nbsp;local transaction map until the changes are committed.</p>
          <p>From here, the data is&nbsp;transferred to&nbsp;the participating remote nodes. Only the nodes that hold primary or&nbsp;backup copies of&nbsp;the data participate in&nbsp;the transaction.</p>
          <p>If&nbsp;a&nbsp;transaction is&nbsp;mapped to&nbsp;a&nbsp;single node, then, Ignite optimizes the transaction execution by&nbsp;switching to&nbsp;the one-phase-commit (1PC) protocol.</p>
        </div>
        <aside class="acid2__right"><img class="acid2__funcimg" src="/img/features/acid/acid-func.svg" alt="" /></aside>
      </div>
    </section>
    <!-- /.acid2-->
    <section class="acid3 container pt-5">
      <h2 class="h4 acid3__title">Records are updated consistently across <br />memory and disk tiers</h2>
      <div class="acid3__wrap pt-5 flexi">
        <div class="acid3__col">
          <h3 class="h5 pb-2">Transactions with Ignite native persistence</h3>
          <p class="fz20 acid3__collead">In case of any failure you can always recover to a consistent state</p>
          <div class="acid3__small pt-4">
            <p>
              When native persistence mode is&nbsp;enabled and Apache Ignite is&nbsp;used as&nbsp;a&nbsp;database that scales beyond available memory capacity, the distributed transactions update data across memory and disk
              in&nbsp;a&nbsp;consistent way.
            </p>
            <p>
              All the changes stay durable, because they are written to&nbsp;the write-ahead log (WAL) files. It&nbsp;guarantees data consistency even if&nbsp;the cluster or&nbsp;individual nodes go&nbsp;down in&nbsp;the middle
              of&nbsp;a&nbsp;transaction.
            </p>
          </div>
          <a class="acid3__detlink" href="#" data-hideopen="acidbox"> WAL in details</a>
          <div class="acid3__detwrap" data-hidebox="acidbox">
            <div class="acid3__detmore">
              <button class="acid3__close" data-hideopen="acidbox"><img src="/img/features/acid/icon-cross.svg" alt="" /></button>
              <p>The purpose of&nbsp;the WAL is&nbsp;to&nbsp;propagate updates to&nbsp;the disk in&nbsp;the append-only mode, which is&nbsp;the fastest way to&nbsp;persist data to&nbsp;disk.</p>
              <p class="pt-1">
                The WAL provides a&nbsp;recovery mechanism for failure scenarios when a&nbsp;single node or&nbsp;the whole cluster goes down. A&nbsp;cluster can always be&nbsp;recovered to&nbsp;the latest successfully committed transaction.
              </p>
            </div>
          </div>
        </div>
        <div class="acid3__col">
          <h3 class="h5 pb-2">Transactions with external databases</h3>
          <p class="fz20 acid3__collead">Your transactions will be updated both in&nbsp;external database and in Apache Ignite</p>
          <div class="acid3__small pt-4">
            <p>
              When Apache Ignite is&nbsp;used as&nbsp;a&nbsp;caching layer for an&nbsp;external database, such as&nbsp;RDBMS, transactions span the cached data in&nbsp;Ignite as&nbsp;well as&nbsp;the data persisted in&nbsp;a&nbsp;database
              supporting transactional APIs.
            </p>
            <p>
              For instance, if&nbsp;a&nbsp;relational database is&nbsp;configured as&nbsp;a&nbsp;disk tier, Ignite writes the transactional changes to&nbsp;the database before sending a&nbsp;commit message to&nbsp;participating cluster
              nodes.
            </p>
            <p>This way, if&nbsp;a&nbsp;transaction fails at&nbsp;the database level, Ignite can still send the rollback message to&nbsp;the cluster nodes, keeping the data consistent across memory and disk tiers.</p>
          </div>
        </div>
      </div>
    </section>
    <section class="native-bottom container">
      <div class="native-bottom__grid">
        <article class="nativebotblock">
          <div class="h4 nativebotblock__title"><img class="nativebotblock__icon" src="/img/features/native-rocket.svg" alt="" /><span>Ready to Start?</span></div>
          <p class="nativebotblock__text">Create your transactional application <br />with Apache Ignite</p>
          <a class="nativebotblock__link arrowlink" href="https://ignite.apache.org/docs/latest/key-value-api/transactions" target="_blank">Performing ACID Transactions</a>
        </article>
        <article class="nativebotblock nativebotblock--learn">
          <div class="h4 nativebotblock__title"><img class="nativebotblock__icon" src="/img/features/native-docs.svg" alt="" /><span>Want to&nbsp;Learn More?</span></div>
          <p class="nativebotblock__text">Ignite&nbsp;3.0 advances its replication and transactional components with the support of&nbsp;the <strong>Raft consensus algorithm</strong></p>
          <a class="nativebotblock__link arrowlink" href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-61%3A+Common+Replication+Infrastructure" target="_blank">Ignite 3.0 and Raft Details</a>
        </article>
      </div>
    </section>
    <footer class="footer">
      <div class="container footer__top">
        <section class="footer1">
          <a class="footer__title" href="/features/">Features</a>
          <ul class="footer__menu">
            <li><a href="/arch/multi-tier-storage.html">Multi-Tier Storage</a></li>
            <li><a href="/arch/native-persistence.html">Native Persistence</a></li>
            <li><a href="/features/sql.html">Distributed SQL</a></li>
            <li><a href="/features/acid-transactions.html">ACID Transactions</a></li>
            <li><a href="/features/key-value-apis.html">Key Value APIs</a></li>
            <li><a href="/features/compute-apis.html">Compute APIs</a></li>
            <li><a href="/features/machinelearning.html">Machine Learning</a></li>
            <li><a href="/features/service-apis.html">Services</a></li>
            <li><a href="/features/streaming.html">Real-Streaming APIs</a></li>
            <li><a href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries">Continuous Queries</a></li>
            <li><a href="https://ignite.apache.org/docs/latest/messaging">Messaging</a></li>
          </ul>
        </section>
        <section class="footer2">
          <a class="footer__title" href="/use-cases/">Use-Cases</a>
          <ul class="footer__menu">
            <li><a href="/use-cases/in-memory-cache.html">In-Memory Cache</a></li>
            <li><a href="/use-cases/in-memory-data-grid.html">In-Memory Data Grid</a></li>
            <li><a href="/use-cases/in-memory-database.html">In-Memory Database</a></li>
            <li><a href="/use-cases/high-performance-computing.html">High-Performance Computing</a></li>
            <li><a href="/use-cases/digital-integration-hub.html">Digital Integration Hub</a></li>
            <li><a href="/use-cases/key-value-store.html">Key-Value Store</a></li>
            <li><a href="/use-cases/spark-acceleration.html">Apache Spark Acceleration</a></li>
            <li><a href="/use-cases/hadoop-acceleration.html">Apache Hadoop Acceleration</a></li>
          </ul>
        </section>
        <section class="footer3"><a class="footer__title" href="/community.html">Community</a><a class="footer__title" href="/resources.html">Resources</a><a class="footer__title" href="/events.html">Events</a></section>
        <section class="footer4">
          <div class="footer4__item">Join Our <a href="mailto:dev@ignite.apache.org">Dev Mailing List</a></div>
          <div class="footer4__item pt-2">Or write your question</div>
          <div class="footer4__item pt-1">user@ignite.apache.org</div>
          <div class="footer4__item pt-5">Follow Us:</div>
          <div class="footer4__socwrap flexi pt-2">
            <a class="footer4__soc" href="https://github.com/apache/ignite" target="_blank"><img src="/img/icon-github.svg" alt="" /></a
            ><a class="footer4__soc" href="https://www.linkedin.com/showcase/apache-ignite/" target="_blank"><img src="/img/icon-linkedin.svg" alt="" /></a
            ><a class="footer4__soc" href="https://twitter.com/apacheignite" target="_blank"><img src="/img/icon-twitter.svg" alt="" /></a
            ><a class="footer4__soc" href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/" target="_blank"><img src="/img/icon-meetup-black.png" alt="" /></a>
          </div>
          <a class="footer4__button button" href="https://ignite.apache.org/docs/latest/index">Start Using Apache Ignite </a>
        </section>
      </div>
      <div class="container footer__bot">
        <p>© 2015 - 2021 <a href="http://www.apache.org/">The Apache Software Foundation.</a></p>
        <p class="pt-1x">Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation</p>
        <p class="pt-1x"><a href="http://apache.org/foundation/policies/privacy.html">Privacy Policy</a></p>
      </div>
    </footer>
    <a class="scrollTop" href="#"
      ><svg class="feather feather-chevron-up" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <polyline points="18 15 12 9 6 15"></polyline></svg
    ></a>
    <script src="/js/vendor/hystmodal/hystmodal.min.js"></script>
    <script src="/js/vendor/smoothscroll.js"></script>
    <script src="/js/main.js?ver=0.7"></script>
  </body>
</html>
