<!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 Database - Apache Ignite</title>
    <meta name="description" content="Apache Ignite is a leading distributed database management system for high-performance computing with in-memory speed. Learn how to use the Ignite decentralized database system and get started." />
    <link rel="canonical" href="https://ignite.apache.org/" />
    <meta property="og:title" content="Distributed Database - Apache Ignite&amp;reg;" />
    <meta property="og:type" content="article" />
    <meta property="og:url" content="https://ignite.apache.org/" />
    <meta property="og:image" content="/img/og-pic.png" />
    <meta
      property="og:description"
      content="Apache Ignite is a leading distributed database management system for high-performance computing with in-memory speed. Learn how to use the Ignite decentralized database system and get started."
    />
    <link rel="stylesheet" href="/js/vendor/hystmodal/hystmodal.min.css?ver=0.9" />
    <link rel="stylesheet" href="/css/utils.css?ver=0.9" />
    <link rel="stylesheet" href="/css/site.css?ver=0.9" />
    <link rel="stylesheet" href="../js/vendor/highlight/default.min.css?ver=0.9" />
    <link rel="stylesheet" href="../js/vendor/highlight/night-owl.css?ver=0.9" />
    <link rel="stylesheet" href="../js/vendor/swiper/swiper-bundle.min.css?ver=0.9" />
    <link rel="stylesheet" href="../css/native-persistence.css?ver=0.9" />
    <link rel="stylesheet" href="../css/events.css?ver=0.9" />
    <link rel="stylesheet" href="../css/tooling.css?ver=0.9" />
    <link rel="stylesheet" href="../css/frontpage.css?ver=0.9" />
    <script src="../js/vendor/highlight/highlight.min.js"></script>
    <script src="../js/vendor/swiper/swiper-bundle.min.js"></script>
    <link rel="stylesheet" href="/css/media.css?ver=0.9" media="only screen and (max-width:1199px)" />
    <link rel="icon" type="image/png" href="/img/favicon.png" />
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-0RZCHL2Y63"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag('js', new Date());
      gtag('config', 'G-0RZCHL2Y63');
      gtag('config', 'UA-61232409-1');
    </script>

    <!-- 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 -->
  </head>
  <body>
    <div class="fronttop">
      <!-- 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 class="hystmodal__close" data-hystclose="">Close</button>
            <div class="mobmenu__wrap">
              <a class="mobmenu__logo" href="/"><img src="/img/logo.svg" alt="Logo" /></a>
              <div class="mobmenu__menu">
                <ul>
                  <li><a href="/docs/latest/">Quick Start</a></li>
                  <li><a href="/resources.html#learning">Learning resources</a></li>
                  <li><a href="/resources.html#training">Training and Courses</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="/resources.html">Resources</a></li>
                  <li><a href="/blog/">Blog</a></li>
                  <li><a href="/docs/latest/">Docs</a></li>
                </ul>
                <a class="button mobmenu__button" href="/download.cgi">Download Ignite 2.16</a>
              </div>
              <!-- //mobmenu__menu-->
            </div>
            <!-- //mobmenu__wrap-->
          </div>
          <!-- //mobmenu-->
        </div>
      </div>
      <!-- MOBILE MENU END-->
      <header class="hdr hdr__white jsHdrBase">
        <div class="jsHdrLine">
          <div id="promotion-bar">
            <a
              href="https://ignite-summit.org/2024/?utm_medium=website-direct&amp;utm_source=apache_ignite&amp;utm_term=ignite-summit&amp;utm_content=event-hosted&amp;utm_campaign=2023-06-06-ignite-summit-nam"
              target="_blank"
              title="Ignite Summit — June 11, 2024 — Join virtually!"
              rel="noopener noreferrer"
              ><span><img class="ignite-summit-logo" src="/images/promos/summit-lime.svg" /></span>Ignite Summit 2024 — Call For Speakers Now Open — Learn more &nbsp;<span class="more d-none d-lg-block"
                ><img src="/images/promos/arrow-white.svg" /></span
            ></a>
          </div>
          <div class="hdr__wrap flexi">
            <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.16.0</a>
            <nav class="hdrmenu">
              <ul class="flexi">
                <li class="js-hasdrop"><a class="hdrmenu__current hdrmenu--expanded" href="/" data-panel="getStarted">Get Started</a></li>
                <li class="js-hasdrop"><a class="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 class="js-hasdrop"><a class="hdrmenu--expanded" href="/resources.html" data-panel="resources">Resources</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#learning"><span>Learning resources</span></a>
                      </li>
                      <li>
                        <a class="dropmenu__iconitem" href="/resources.html#training"><span>Training and Courses</span></a>
                      </li>
                      <li>
                        <a class="dropmenu__iconitem" href="/faq.html"><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 class="dropmenu__panel" data-menupanel="resources">
                <div class="container dropmenu1__grid">
                  <div class="dropmenu1__buttonwrap">&nbsp;</div>
                  <div class="dropmenu__box dropmenu__box--buttonin">
                    <a class="dropmenu__redbutton blog" href="/blog/"><img src="/img/menu/icon-blog.svg" alt="" /><span>Blog</span></a>
                    <ul class="dropmenu__menu">
                      <li>
                        <a class="dropmenu__iconitem" href="/resources.html#technical"><span>Technical resources</span></a>
                      </li>
                      <li>
                        <a class="dropmenu__iconitem" href="/resources.html#learning"><span>Learning resources</span></a>
                      </li>
                    </ul>
                  </div>
                  <div class="dropmenu__box blog">
                    <ul class="dropmenu__menu">
                      <li>
                        <a class="dropmenu__iconitem" href="/resources.html#training"><span>Training and Courses</span></a>
                      </li>
                      <li>
                        <a class="dropmenu__iconitem" href="/resources.html#book"><span>Apache Ignite Book</span></a>
                      </li>
                      <li>
                        <a class="dropmenu__iconitem" href="/resources.html#mail"><span>Mailing Lists, Forums And Discussion Archives</span></a>
                      </li>
                      <li>
                        <a class="dropmenu__iconitem" href="/faq.html"><span>FAQ</span></a>
                      </li>
                    </ul>
                  </div>
                </div>
                <!-- /.dropmenu1__grid-->
              </div>
              <!-- /.dropmenu__panel-->
            </div>
            <!-- /.dropmeu-->
          </div>
        </div>
      </header>
      <div class="dropmenu__back"></div>
      <header class="hdrfloat hdr__white jsHdrFloatBase"></header>
      <img class="fronttop__pic" src="/img/frontpage/hero-white.svg" alt="" />
      <section class="innerhero fronthero">
        <div class="container innerhero__cont">
          <div class="innerhero__main innerhero__main--long">
            <h1 class="h1 innerhero__h1 innerhero__mega">Distributed Database For <br />High&#8209;Performance Applications <br />With In&#8209;Memory Speed</h1>
            <div class="innerhero__h2 h4 pt-2">Scale Across Memory And Disk Without Compromise</div>
            <div class="innerhero__action pt-5"><a class="button fronthero__button" href="https://ignite.apache.org/docs/latest/index">Start Coding</a></div>
          </div>
        </div>
      </section>
      <!-- /.innerhero-->
    </div>
    <section class="frontblue">
      <aside class="fronttopcards flexi container">
        <a class="frontcard" href="https://blogs.apache.org/ignite/entry/apache-ignite-momentum-highlights-from" target="_blank"
          ><div class="frontcard__title h5">A top-5 project of the Apache Software <br />Foundation</div>
          <div class="frontcard__prises pt-3 flexi">
            <div class="frontcard__price flexi">
              <div class="frontcard__iconwrap"><img src="/img/frontpage/b1-prize1.svg" alt="" /></div>
              <span>Big Data <br />Users Lists</span>
            </div>
            <div class="frontcard__price flexi">
              <div class="frontcard__iconwrap frontcard__iconwrap--blue"><img src="/img/frontpage/b1-prize1.svg" alt="" /></div>
              <span>Users Lists</span>
            </div>
            <div class="frontcard__price flexi">
              <div class="frontcard__iconwrap frontcard__iconwrap--grey"><img src="/img/frontpage/b1-prize1.svg" alt="" /></div>
              <span>Dev Lists</span>
            </div>
          </div></a
        ><!-- /.frontcard--><a class="frontcard" href="/use-cases/provenusecases.html"
          ><div class="frontcard__network"><img src="/img/frontpage/b1-planet.svg" alt="" /></div>
          <div class="frontcard__title h5 pt-3">Leading companies around the world select Ignite to speed up and scale applications used by millions of&nbsp;people daily</div></a
        ><!-- /.frontcard-->
      </aside>
      <!-- /.fronttopcards-->
      <div class="container forntcodes">
        <h2 class="h3">Use Ignite Core Capabilities To Start Easily <br />And Scale Faster</h2>
        <div class="forntcodes__wrap flexi jsTabWrap pt-4">
          <div class="forntcodes__menu">
            <ul class="fz20">
              <li><a class="active" href="#" data-ftablink="frontcode-1">Multi-Tier Storage</a></li>
              <li><a href="#" data-ftablink="frontcode-2">Distributed SQL</a></li>
              <li><a href="#" data-ftablink="frontcode-3">ACID Transactions</a></li>
              <li><a href="#" data-ftablink="frontcode-4">Compute APIs</a></li>
              <li><a href="#" data-ftablink="frontcode-5">Machine Learning</a></li>
              <li><a href="#" data-ftablink="frontcode-6">Continuous Queries</a></li>
            </ul>
            <a class="forntcodes__menumore fz20" href="/features/">View all features</a>
          </div>
          <div class="forntcodes__tabwraps">
            <div class="forntcodes__tab active" data-ftab="frontcode-1">
              <p class="forntcodes__tabtitle fz20 pb-1">Multi-Tier Storage</p>
              <p>
                Ignite scales up and out across memory and disk. By default, Ignite operates in a pure in-memory mode. But, by toggling a single configuration setting, you can turn a cluster into a database that can grow beyond the
                cluster's memory capacity:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi">
                  <a class="nativecode__link active" href="#" data-tablink="nativeTabXML">XML</a><a class="nativecode__link" href="#" data-tablink="nativeTabJava">Java</a
                  ><a class="nativecode__link" href="#" data-tablink="nativeTabNET">C#/.NET</a>
                </div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="nativeTabXML">
                    <pre class="nativecode__codebox"> <code class="xml">&lt;bean class=&quot;org.apache.ignite.configuration.IgniteConfiguration&quot;&gt;
    &lt;property name=&quot;dataStorageConfiguration&quot;&gt;
        &lt;bean class=&quot;org.apache.ignite.configuration.DataStorageConfiguration&quot;&gt;
            &lt;property name=&quot;defaultDataRegionConfiguration&quot;&gt;
                &lt;bean class=&quot;org.apache.ignite.configuration.DataRegionConfiguration&quot;&gt;
                    &lt;property name=&quot;persistenceEnabled&quot; value=&quot;true&quot;/&gt;
                &lt;/bean&gt;
            &lt;/property&gt;
        &lt;/bean&gt;
    &lt;/property&gt;
&lt;/bean&gt;</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="nativeTabJava">
                    <pre class="nativecode__codebox"> <code class="java">IgniteConfiguration cfg = new IgniteConfiguration();

DataStorageConfiguration storageCfg = new DataStorageConfiguration();

// Enable Ignite Persistence
storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);

// Using the new storage configuration
cfg.setDataStorageConfiguration(storageCfg);
</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="nativeTabNET">
                    <pre class="nativecode__codebox"> <code class="csharp">var cfg = new IgniteConfiguration
{
    DataStorageConfiguration = new DataStorageConfiguration
    {
        DefaultDataRegionConfiguration = new DataRegionConfiguration
        {
            Name = &quot;Default_Region&quot;,
            PersistenceEnabled = true
        }
    }
};
</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/arch/multi-tier-storage.html">Learn More About Multi-Tier Storage</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab1 (END Multi-Tier Storage)-->
            <div class="forntcodes__tab" data-ftab="frontcode-2">
              <p class="forntcodes__tabtitle fz20 pb-1">Distributed SQL</p>
              <p>
                Use Ignite as a traditional SQL database by leveraging JDBC drivers, ODBC drivers, or the native SQL APIs that are available for Java, C#, C++, Python, and other programming languages. Seamlessly join, group, aggregate, and
                order your distributed in-memory and on-disk data:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="sqlTabSQL">SQL</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="sqlTabSQL">
                    <pre class="nativecode__codebox"> <code class="sql">SELECT country.name, city.name, MAX(city.population) as max_pop
FROM country JOIN city ON city.countrycode = country.code
WHERE country.code IN ('USA','BRA','ESP','JPN')
GROUP BY country.name, city.name
ORDER BY max_pop DESC LIMIT 3;</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/sql.html">Learn More About Distributed SQL</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab2 (END Distributed SQL)-->
            <div class="forntcodes__tab" data-ftab="frontcode-3">
              <p class="forntcodes__tabtitle fz20 pb-1">ACID Transactions</p>
              <p>Ignite can operate in a strongly consistent mode that provides full support for distributed ACID transactions. Transact across multiple cluster nodes, caches, tables, and partitions:</p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="acidTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="acidTabSharp">C#/.NET</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="acidTabJava">
                    <pre class="nativecode__codebox"> <code class="java">IgniteTransactions transactions = ignite.transactions();

try (Transaction tx = transactions.txStart()) {
    Integer hello = cache.get(&quot;Hello&quot;);

    if (hello == 1)
        cache.put(&quot;Hello&quot;, 11);

    cache.put(&quot;World&quot;, 22);

    tx.commit();
}</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="acidTabSharp">
                    <pre class="nativecode__codebox"> <code class="csharp">var transactions = ignite.GetTransactions();

using (var tx = transactions.TxStart()) {
    int hello = cache.Get(&quot;Hello&quot;);

    if (hello == 1) {
        cache.Put(&quot;Hello&quot;, 11);
    }

    cache.Put(&quot;World&quot;, 22);

    tx.Commit();
}</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/acid-transactions.html">Learn More About Transactions</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab3 (END ACID Transactions)-->
            <div class="forntcodes__tab" data-ftab="frontcode-4">
              <p class="forntcodes__tabtitle fz20 pb-1">Compute APIs In Java, Scala, Kotlin, C#, C++</p>
              <p>
                With traditional databases, for in-place calculations, you use stored procedures that are written in a language such as PL/SQL. With Ignite, you use modern JVM languages, C# or C++ to develop and execute custom tasks across
                your distributed database:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="compTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="compTabSharp">C#/.NET</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="compTabJava">
                    <pre class="nativecode__codebox"> <code class="java">// Broadcast the task to server nodes only.
IgniteCompute compute = ignite.compute(ignite.cluster().forServers());

// Each remote server node will execute the logic of the task/lambda below.
compute.broadcast(() -&gt; System.out.println(
    &quot;Hello Node: &quot; + ignite.cluster().localNode().id()));</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="compTabSharp">
                    <pre class="nativecode__codebox"> <code class="csharp">// Broadcast the task to server nodes only.
var compute = ignite.GetCluster().ForServers().GetCompute();

// Each remote server node will execute the custom PrintNodeIdAction task.
compute.Broadcast(new PrintNodeIdAction());</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/compute-apis.html">Learn More About Compute APIs</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab4 (END Compute APIs)-->
            <div class="forntcodes__tab" data-ftab="frontcode-5">
              <p class="forntcodes__tabtitle fz20 pb-1">Built-In Machine Learning</p>
              <p>
                Ignite machine learning uses built-in algorithms and tools, as well as TensorFlow integration, to enable the building of scalable machine learning models and avoid costly data transfers. Train, deploy, evaluate, and update
                your ML and DL models continuously and at scale:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="machineTabJava">Java</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="machineTabJava">
                    <pre class="nativecode__codebox"> <code class="java">// Create the trainer
KNNClassificationTrainer trainer = new KNNClassificationTrainer()
.withK(3).withIdxType(SpatialIndexType.BALL_TREE)
.withDistanceMeasure(new EuclideanDistance())
.withWeighted(true);

// Train the model
KNNClassificationModel knnMdl = trainer.fit(ignite, dataCache, vectorizer);

// Make a prediction
double prediction = knnMdl.predict(observation);</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/machinelearning.html">Learn More About Machine Learning</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab5 (END Machine Learning)-->
            <div class="forntcodes__tab" data-ftab="frontcode-6">
              <p class="forntcodes__tabtitle fz20 pb-1">Continuous Queries</p>
              <p>
                With relational databases, you use triggers to react to certain events. With Ignite, you deploy continuous queries that are written in a modern programming language such as Java or C# and process streams of changes on the
                database and application side:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="contTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="contTabSharp">C#/.NET</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="contTabJava">
                    <pre class="nativecode__codebox"> <code class="java">ContinuousQuery qry = new ContinuousQuery&lt;&gt;();

// The callback that will be triggered on the application side.
qry.setLocalListener(new MyLocalListener());

// The callback that will be executed on the server side.
qry.setRemoteFilterFactory(new MyRemoteFilterFactory());

// Deploy the query in the cluster.
cache.query(query);</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="contTabSharp">
                    <pre class="nativecode__codebox"> <code class="csharp">var cache = ignite.GetOrCreateCache(&quot;myCache&quot;);

var query = new ContinuousQuery(
    new MyLocalListener(), // Will be triggered on the application side.
    new MyRemoteFilter()); // Will be executed on the server side.

// Deploy the query in the cluster.
var handle = cache.QueryContinuous(query);</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries" target="_blank">Learn More About Continuous Queries</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab6 (END Continuous Queries)-->
          </div>
        </div>
      </div>
      <!-- /.forntcodes-->
    </section>
    <!-- /.frontblue-->
    <section class="frontnewcards container">
      <h2 class="h3">New To Ignite? <br />Three Primary Usage Scenarios</h2>
      <div class="frontnewcards__wrap pt-5">
        <article class="frontsimplecard cardsimple">
          <h4 class="cardsimple__title">Application Acceleration <br />& Scale Out</h4>
          <div class="cardsimple__text cardsimple__text--long">
            Accelerate your existing applications by&nbsp;100x using Ignite as&nbsp;an&nbsp;in-memory cache or&nbsp;in-memory data grid that is&nbsp;deployed over one or&nbsp;more external databases.
          </div>
        </article>
        <article class="frontsimplecard cardsimple">
          <h4 class="cardsimple__title">Distributed Database For <br />HTAP Workloads</h4>
          <div class="cardsimple__text cardsimple__text--long">Build applications that support transactional and&nbsp;analytical workloads by&nbsp;using Ignite as&nbsp;a&nbsp;database that scales beyond available memory capacity.</div>
        </article>
        <article class="frontsimplecard cardsimple">
          <h4 class="cardsimple__title">Digital Integration Hub<br />&nbsp;</h4>
          <div class="cardsimple__text cardsimple__text--long">Create an&nbsp;advanced platform architecture that aggregates multiple back-end systems and databases into a&nbsp;low-latency and shared data store.</div>
          <div class="cardsimple__bottom"><a class="cardsimple__button button button--shadow" href="/use-cases/digital-integration-hub.html">Learn More</a></div>
        </article>
      </div>
    </section>
    <!-- /.frontnewcards-->
    <section class="frontstories container">
      <h2 class="h3">Ignite User Stories</h2>
      <ul class="frontstories__checkers pt-5 capstext">
        <li>Software & SaaS</li>
        <li>Banking & Finances</li>
        <li>Retail</li>
        <li>Biotech</li>
        <li>Logistics & Transportation</li>
        <li>Others</li>
      </ul>
      <div class="frontstories__sliderwrap">
        <button class="ctrl ctrl--prev"><img src="/img/frontpage/icon-slider-arrow.svg" alt="" /></button><button class="ctrl ctrl--next"><img src="/img/frontpage/icon-slider-arrow.svg" alt="" /></button>
        <div class="swiper jsFrontVideosSwiper">
          <div class="swiper-wrapper">
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=3w0H3zLH594" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Real-time Data Access with Apache Ignite SQL</span><img src="/img/poweredby/videos/bloomberg.jpg" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=BSGFL72u2iY" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Improving the CERN Control and Monitoring Platform (C2MON) with Apache Ignite</span><img src="/img/poweredby/videos/cern.jpg" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=NUxdoL-K9Ys" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">How nference.ai leverages Ignite for distributed analytics in the bioinformatics domain</span><img src="/img/poweredby/videos/012.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=3FFexcYIpmA" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Leveraging In&nbsp;Memory Compute Grids With Core Systems Of&nbsp;Record</span><img src="/img/poweredby/videos/001.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=Mhtt2QL_qCQ" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--black comvideo__txt--small">Apache Ignite, Load Reduction and System Scaling for Banking</span><img src="/img/poweredby/videos/002.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=z28rthKIrDk" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">S9D Using Apache Ignite As&nbsp;A&nbsp;Part Of&nbsp;Real Time Campaigning</span><img src="/img/poweredby/videos/003.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/" target="_blank"
                    ><span class="comvideo__txt comvideo__txt--small">In-Memory Computing Patterns For High Volume, Real Time Applications</span><img src="/img/poweredby/videos/005.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=EdFOKJIjRSg" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Fitness + In Memory Computing = Getting Ahead Of The Game</span><img src="/img/poweredby/videos/008.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=jF9T2cJB6t0" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--black comvideo__txt--small">High Performance Exposure Management With Apache Ignite</span><img src="/img/poweredby/videos/009.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=_mnZQ3JDcn8" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--black comvideo__txt--small">Ignite Success Story: How Ignite Fuels The High Throughput Messaging In&nbsp;Sentienz Akiro</span><img src="/img/poweredby/videos/014.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/" target="_blank"
                    ><span class="comvideo__txt comvideo__txt--small">&laquo;Recent Purchases&raquo; With Apache Ignite</span><img src="/img/poweredby/videos/004.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=CPmwnjDJ1Sk" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Embracing The Service Consumption Shift In&nbsp;Banking</span><img src="/img/poweredby/videos/006.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
          </div>
        </div>
        <div class="frontstories__pag"></div>
      </div>
      <div class="frontstories__bottom pt-5"><a class="button button--shadow" href="/use-cases/provenusecases.html">Watch Other Stories</a></div>
    </section>
    <!-- /.frontstories-->
    <section class="container event-featured fronteventsbanner">
      <p class="capstext">Featured Event</p>
      <a class="event-featured__banner pt-5" href="https://ignite-summit.org/2024/" target="_blank"
        ><picture
          ><source srcset="/images/promos/ignite-Summit-call-for-speakers.jpg" media="(max-width: 767px)" />
          <img src="/images/promos/ignite-Summit-call-for-speakers.jpg" alt="Ignite Summit" /></picture></a
      ><!-- /.event-featured-->
    </section>
    <section class="frontconfs container">
      <h2 class="h3">Join The Community At Events <br />And Meetups Worldwide</h2>
      <div class="frontconfs__wrap">
        <a class="frontconfcard frontconfcard--red" href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/" target="_blank"
          ><div class="frontconfs__iconwrap pb-3"><img src="/img/frontpage/events/001.svg" alt="" /></div>
          <h4 class="h5 frontconfcard__title pb-2">Ignite Virtual Meetup</h4>
          <p>Experts and practitioners give <strong>online talks and presentations</strong> and share their Apache Ignite experience.</p>
          <div class="frontconfcard__bottom">
            <p class="capstext">Online</p>
            <div class="frontconfcard__cal">Regularly</div>
          </div></a
        ><a class="frontconfcard frontconfcard--blue" href="https://ignite-summit.org/" target="_blank"
          ><div class="frontconfs__iconwrap pb-3"><img src="/img/frontpage/events/004.svg" alt="" /></div>
          <h4 class="h5 frontconfcard__title pb-2">Ignite Summit</h4>
          <p>This <strong>virtual conference</strong> is a chance to learn more about up-to-date in-memory computing solutions.</p>
          <p>There are speakers from industry-leading companies and hundreds of participants from all over the world.</p>
          <div class="frontconfcard__bottom">
            <p class="capstext">Online</p>
            <div class="frontconfcard__cal">Annually</div>
          </div></a
        ><a class="frontconfcard" href="/events.html#upcoming" target="_blank"
          ><div class="frontconfs__iconwrap pb-3"><img src="/img/frontpage/events/003.svg" alt="" /></div>
          <h4 class="h5 frontconfcard__title pb-2">Other Events</h4>
          <p>Join us for <strong>conferences, presentations, and webinars</strong> to learn more about in-memory computing technologies.</p>
          <div class="frontconfcard__bottom">
            <p class="capstext">ONLINE <small>and</small> OFFLINE</p>
            <div class="frontconfcard__cal">Regularly</div>
          </div></a
        >
      </div>
      <div class="frontconfs__bottom pt-5"><a class="button button--shadow" href="/events.html">View All Events</a></div>
    </section>
    <!-- /.frontconfs-->
    <section class="frontresourse container">
      <h2 class="h3">Resources To Elevate Your <br />Ignite Experience</h2>
      <div class="frontresourse__subtitle pt-2">Get access to a variety of free technical <br />and learning resources</div>
      <div class="frontresourse__wrap flexi fz20">
        <div class="frontresourse__col">
          <div class="capstext pb-5">Technical resources</div>
          <a class="frontresitem flexi frontresitem--black" href="/resources.html#technical">
            <div class="frontresitem__icon"><img src="/img/frontpage/res-docs.svg" alt="" /></div>
            <div class="frontresitem__text">Apache Ignite technical documentation</div></a
          ><a class="frontresitem flexi frontresitem--gray" href="https://cwiki.apache.org/confluence/display/IGNITE/" target="_blank"
            ><div class="frontresitem__icon"><img src="/img/frontpage/res-wiki.svg" alt="" /></div>
            <div class="frontresitem__text">Ignite Wiki with a collection of low-level design documents and instructions</div></a
          ><a class="frontresitem flexi frontresitem--gray" href="/resources.html#git"
            ><div class="frontresitem__icon"><img src="/img/icon-github.svg" alt="" /></div>
            <div class="frontresitem__text">Git repositories with Ignite source code and code samples and examples</div></a
          >
        </div>
        <div class="frontresourse__col">
          <div class="capstext pb-5">Learning resources</div>
          <a class="frontresitem flexi frontresitem--red" href="/resources.html#learning">
            <div class="frontresitem__icon"><img src="/img/frontpage/res-videos.svg" alt="" /></div>
            <div class="frontresitem__text">Dozens of essential videos and webinar <br />recordings</div></a
          ><a class="frontresitem flexi frontresitem--rose" href="/resources.html#training"
            ><div class="frontresitem__icon"><img src="/img/frontpage/res-vebinar.svg" alt="" /></div>
            <div class="frontresitem__text">Trainings and courses that help with building high&#8209;performance and data-intensive applications with&nbsp;the Apache Ignite</div></a
          ><a class="frontresitem flexi frontresitem--rose" href="https://www.shamimbhuiyan.com/ignitebook" target="_blank"
            ><div class="frontresitem__icon"><img src="/img/frontpage/res-book.svg" alt="" /></div>
            <div class="frontresitem__text">Apache Ignite book to expand your knowledge <br />in in&#8209;memory computing and distributed databases</div></a
          >
        </div>
      </div>
      <div class="frontconfs__bottom pt-5"><a class="button button--shadow" href="/resources.html">View All Resources</a></div>
    </section>
    <section class="toolingend toolingend--front">
      <div class="container flexi">
        <div class="toolingend__main">
          <p class="toolingend__title h3"><strong>Ready To Start?</strong></p>
          <p class="h5 pt-2">Discover our quick start guides and build your first <br />application in 5-10 minutes</p>
        </div>
        <div class="toolingend__action"><a class="button" href="https://ignite.apache.org/docs/latest/" target="_blank">Discover Quick Start Guide</a></div>
      </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="/our-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 - 2024 <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.9"></script>
  </body>
</html>
