<!DOCTYPE html>
<html lang="en">

<head>
  <!-- Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License. -->
    <meta charset="utf-8">
    <title>Apache Geode — Performance is key. Consistency is a must.</title>
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
    <meta name="keywords" content="Apache Geode, Geode, GemFire, In-memory, IMDB, IMDG, cache">
    <meta name="description" content="Apache Geode is a distributed, in-memory database with strong data consistency, built to support transactional applications with low latency and high concurrency needs." />
    <meta property="og:title" content="Apache Geode" />
    <meta property="og:description" content="Apache Geode is a distributed, in-memory database with strong data consistency, built to support transactional applications with low latency and high concurrency needs." />
    <!-- Loading Typekit -->
    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
    <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>

    <!-- Place this tag right after the last button or just before your close body tag. -->
    <script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
        <!-- Loading Bootstrap -->
    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
    <link href="/css/geode-site.css" rel="stylesheet" type='text/css'>
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
    <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
      <script src="js/respond.min.js"></script>
    <![endif]-->
</head>
<body>

    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav " role="banner">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <a href="/" class="navbar-brand">
                <img id="home-logo" src="/img/apache_geode_logo_white_small.png" />
            </a>
        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
            <ul class="nav navbar-nav navbar-right">
                <li class=""><a href="/community/"><span class="fa fa-users"></span></a></li>
                <li class=""><a href="/docs/"><span class="fa fa-book"></span></a></li>
                <li><a href="http://github.com/apache/geode" target="_blank"><span class="fa fa-github-square"></span></a></li>
                <li><a href="https://issues.apache.org/jira/browse/GEODE/" target="_blank"><span class="fa fa-bug"></span></a></li>
                <li><a href="http://stackoverflow.com/search?q=Apache%20Geode" target="_blank"><span class="fa fa-stack-overflow"></span></a></li>
                <li><a href="/community/#mailing-lists"><span class="fa fa-envelope"></span></a></li>
                <li><a href="https://twitter.com/apachegeode" target="_blank"><span class="fa fa-twitter"></span></a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/geode/" target="_blank"><span class="fa fa-pencil-square-o"></span></a></li>
                <li class=""><a href="/releases/"><span class="fa fa-arrow-circle-o-down"></span></a></li>
            </ul>
        </nav>
    </div>
    </header>


<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License. -->

<section class="bf-masthead" id="content" role="main">
    <div class="bf-masthead-bg">
        <div class="container">
            <img class="logo-title img-responsive hidden-xs" src="img/Apache_Geode_logo.png" />
            <div class="text-container">
                <h2 class="tagline"><em>Performance</em> is key. <em>Consistency</em> is a must.</h2>
                <p class="description">Providing low latency, high concurrency data management solutions since 2002.<br/>
                  <br/>Build high-speed, data-intensive applications that elastically meet performance requirements at any scale.<br/>
                  Take advantage of Apache Geode's unique technology that blends advanced techniques for data replication, partitioning and distributed processing.

                  <br/><br/>
                  Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing.<br/>
            </div>

            <div class="btn-wrapper">
              <p><a href="/releases/" class="btn btn-inverse btn-lg">Download Geode</a> &nbsp;</p> 
              <!-- Place this tag where you want the button to render. -->
              <a class="github-button" href="https://github.com/apache/geode" data-icon="octicon-star" data-style="mega" data-count-href="/apache/geode/stargazers" data-count-api="/repos/apache/geode#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star apache/geode on GitHub">Star</a>
              <a class="github-button" href="https://github.com/apache/geode/fork" data-icon="octicon-repo-forked" data-style="mega" data-count-href="/apache/geode/network" data-count-api="/repos/apache/geode#forks_count" data-count-aria-label="# forks on GitHub" aria-label="Fork apache/geode on GitHub">Fork</a>
              <a class="github-button" href="https://github.com/apache/geode" data-icon="octicon-eye" data-style="mega" data-count-href="/apache/geode/watchers" data-count-api="/repos/apache/geode#subscribers_count" data-count-aria-label="# watchers on GitHub" aria-label="Watch apache/geode on GitHub">Watch</a>


            </div>
        </div>
    </div>
</section>

<section class="bf-features">
    <div class="container">
        <div class="row">
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="fa fa-sitemap"></i></div>
                <h3>Replication and Partitioning</h3>
                <p>Data can easily be partitioned (sharded) or replicated between nodes allowing performance to scale as needed. Durability is ensured through redundant in-memory copies and disk-based persistence.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="fa fa-hdd-o"></i></div>
                <h3>Persistence</h3>
                <p>Super fast write-ahead-logging (WAL) persistence with a shared-nothing architecture that is optimized for fast parallel recovery of nodes or an entire cluster.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i aria-hidden="true" class="fa fa-rocket"></i></div>
                <h3>Performance</h3>
                <p>Linear-scaling low latency for transactions, reads, writes and query processing of indexed or unindexed data.</p>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4">
                <div class="bf-icon-wrap" style="font-size:40px; vertical-align: 15px;"><i aria-hidden="true" class="fa fa-fast-forward"></i><i aria-hidden="true" class="fa fa-dashboard"></i></div>
                <h3>In-Memory Storage</h3>
                <p>Blazing fast in-memory storage optimized for large heaps, with the option of using off-heap storage, compression and features such as disk-overflow, eviction and expiration of data.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><span style="font-size:60px" aria-hidden="true" class="fa fa-cogs"></span></div>
                <h3>Functions</h3>
                <p>Distributed location-aware user functions can be deployed and executed by the same nodes storing relevant sharded data for fast parallel processing. Failed operations can be retried on replicant nodes.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="fa fa-credit-card"></i></div>
                <h3>Transactions</h3>
                <p>ACID distributed transactions support efficient and safe coordinated operations on colocated data. Transactions can be initiated or suspended by either a client or a server.</p>
            </div>
        </div>
        <div class="row">
          <div class="col-md-4">
              <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="fa fa-table"></i></div>
              <h3>OQL and Indexes</h3>
              <p>Object Query Language allows distributed query execution on hot and cold data, with SQL-like capabilities, including joins.<br/>
              Multiple kinds of indexes can be defined and consistently maintained across the cluster.</p>
          </div>
          <div class="col-md-4">
              <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="fa fa-bolt"></i></div>
              <h3>Events</h3>
              <p>Clients can be notified about server-side data events, and servers can react synchronously or asynchronously with guaranteed delivery of ordered events.</p>
          </div>
          <div class="col-md-4">
              <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="fa fa-cloud"></i></div>
              <h3>Clustering</h3>
              <p>Highly scalable, robust advanced clustering technology with failure detection, dynamic scaling, and network-partition detection algorithms.</p>
          </div>
        </div>
        <div class="row">
          <div class="col-md-4">
              <div class="bf-icon-wrap" style="font-size:30px; vertical-align: 15px;" aria-hidden="true"><i class="fa fa-cloud"></i><i style="font-size:15px; vertical-align: 15px;" class="fa fa-exchange fa-8x"></i><i class="fa fa-cloud"></i></div>
              <h3>Multi-Cluster</h3>
              <p>Geode clusters can be replicated over WAN in various topologies: active-active, active-passive, ring, hub-spoke, star, etc.</p>
          </div>
          <div class="col-md-4">
              <div class="bf-icon-wrap" style="font-size:30px; vertical-align: -5px;" aria-hidden="true"><i class="fa fa-bullhorn"></i><i class="fa fa-laptop"></i></div>
              <h3>Continuous Query</h3>
              <p>Clients can stay up to date by registering OQL queries with the Geode servers, making event-driven applications possible.</p>
          </div>
          <div class="col-md-4">
              <div class="bf-icon-wrap" style="font-size:30px; vertical-align: -5px;" aria-hidden="true"><i class="fa fa-desktop"></i><i class="fa fa-laptop"></i></div>
              <h3>Clients</h3>
              <p>Clients are available for Java, C++, and C# .NET Framework. A REST API is available for all other languages.</p>
          </div>
        </div>
      <div class="row">
          <div class="col-md-4">
              <div></div>
          </div>
          <div class="col-md-4">
              <div class="bf-icon-wrap" style="font-size:65px; vertical-align: -5px;" aria-hidden="true"><i class="fa fa-plug"></i></div>
              <h3>Adapters</h3>
              <p>Geode can be used as a drop-in replacement for memcached, allowing use of Geode's server-side features like multi-cluster replication.</p>
          </div>
          <div class="col-md-4">
              <div></div>
          </div>
        </div>

    </div>

    </div>
</section>

<section class="bf-questions">
    <div class="container">
            <div class="col-md-12 text-center cta">
                And much more... Interested? You can check our <a href="https://cwiki.apache.org/confluence/display/GEODE/Index#Index-Geodein5minutesGeodein5minutes" target="_blank" class="btn btn-inverse btn-lg">Geode in 5 minutes tutorial</a> <span class="avoidwrap">, ask a question on the <a href="/community/" class="btn btn-inverse btn-lg">Mailing lists</a> or <a href="http://stackoverflow.com/search?q=Apache%20Geode" class="btn btn-inverse btn-lg">StackOverflow</a></span>
            </div>
    </div>
</section

<section class="bf-news">
    <div class="container">

        <div class="row">
            <div class="col-md-12 text-left">
                <h2>About the Project</h2>
<p>Apache Geode is a data management platform that provides real-time, consistent access to data-intensive applications throughout widely distributed cloud architectures.</p>

<p>Geode pools memory, CPU, network resources, and optionally local disk across multiple processes
to manage application objects and behavior. It uses dynamic replication and data partitioning
techniques to implement high availability, improved performance, scalability, and fault
tolerance. In addition to being a distributed data container, Apache Geode is an in-memory data
management system that provides reliable asynchronous event notifications and guaranteed message
delivery.</p>

<p>Apache Geode is a mature, robust technology originally developed by GemStone Systems.
Commercially available as GemFire™, it was first deployed in the financial sector as the transactional, low-latency data engine used
in Wall Street trading platforms.
Today Apache Geode technology is used by hundreds of enterprise customers for high-scale business applications that must meet low latency and 24x7 availability requirements.</p>
            </div>
            <!--
            <div class="col-md-4 text-left">
                <h2>Recent Releases</h2>


            </div>
            -->
        </div>

    </div>
</section>


<footer class="bf-footer" role="contentinfo">
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="/">Home</a></li>
                    <li class="nav-header"><a href="/community/">Community</a></li>
                        <li><a href="/community/#events">Events</a></li>
                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
                        <li><a href="/community/#deployments">Deployments</a></li>
                        <!-- <li><a href="/community/#committers">Commiters</a></li> -->
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="http://github.com/apache/geode" target="_blank">Code</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Project+Proposals+and+Specifications" target="_blank">Specifications</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Geode+Internal+Architecture" target="_blank">Internal Architecture</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Writing+tests" target="_blank">Writing Tests</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Criteria+for+Code+Submissions" target="_blank">Code Submissions</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Resources</li>
                    <li><a href="http://github.com/apache/geode" target="_blank">GitHub Code</a></li>
                    <li><a href="/docs/">Docs</a></li>
                    <li><a href="https://issues.apache.org/jira/browse/GEODE" target="_blank">JIRA Bug Tracker</a></li>
                    <li><a href="http://stackoverflow.com/search?q=Apache%20Geode" target="_blank">StackOverflow</a></li>
                    <li><a href="/community/#live">Live Chat</a></li>
                    <li><a href="https://twitter.com/apachegeode" target="_blank">Twitter</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Index#Index-Geodein5minutesGeodein5minutes" target="_blank">Geode in 5 minutes</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/How+to+Contribute" target="_blank">How to Contribute</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Application+Development" target="_blank">Application Development</a></li>

                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Technology+FAQ" target="_blank">FAQ</a></li>

                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Apache</li>
                    <li><a href="http://www.apache.org/events/" target="_blank">Events</a></li>
                    <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
                    <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="http://www.apache.org/security/">Security</a></li>
                    <li><a href="http://www.apache.org/" target="_blank">Apache Foundation</a></li>
                </ul>
            </div>
            <div class="col-md-4">
              <a class="twitter-timeline" href="https://twitter.com/search?q=%23ApacheGeode%20OR%20Apache%20Geode" data-widget-id="665030887004725248">Tweets about #ApacheGeode OR Apache Geode</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
            </div>
        <!--
            <div class="col-md-4">
                <div class="input-group form-search">
                    <input type="text" class="form-control search-query">
                    <span class="input-group-btn">
                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
                    </span>
                </div>
            </div> -->
        </div>
        <div class="row">
          <center>
            <div id="copyright">
                <a href="http://www.apache.org" target="_blank"><img src="/img/asf_logo.png" height="125"></a><br/><br/>
                <p>Copyright © 2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                Apache, Apache Geode, and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                <p>Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> for Apache Usergrid.</p>
                <p>Modified for Apache Geode by <a href="https://twitter.com/william_markito">@william_markito</a>.</p>
            </div>
          </center>
        </div>
    </div>
</footer>

<script type="text/javascript" src="/js/head.js"></script>
<script type="text/javascript">
    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
</script>



</body>
</html>
