<!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 — Community</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 secondary" 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="active"><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="https://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="https://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. -->

<!-- <div id="map-canvas" style="width: 100%;"></div> -->

<section class="bf-tagline">
    <div class="container">
    	<div class="row">
        <br/>
	    	<h2>Join Our Community of Contributors!</h2>
        <p>The Apache Geode team welcomes contributors who want to support the Geode technology. Our community builds everything from this website, from the Geode code to documentation and best practices information.</p>

        <p>We especially welcome additions and corrections to the documentation, wiki, and website to improve the user experience. Bug reports and fixes and additions to the Apache Geode code are welcome. Helping users learn best practices also earns good karma in our community.</p>
		</div>
	</div>
</section>

<section class="bf-community">
    <div class="container">
    	<div class="row">
    	    <div class="col-md-12">
    	    	<h2 class="icns-envelope" id="mailing-lists"><span>Mailing-lists</span></h2>
			</div>
		</div>
		<div class="row">
	    	<div class="col-md-4">
	    		<h3>Users</h3>
	    		<p><em>Perfect if you build apps against Apache Geode or deploy Apache Geode, and a great place to start if you have a question.</em></p>
	    		<p>To subscribe, send a blank email to<br/><a href="mailto:user-subscribe@geode.apache.org">user-subscribe@geode.apache.org</a>.</p>
	    		<p>You can also <a href="https://lists.apache.org/list.html?user@geode.apache.org">read the archives</a>.</p>
			</div>
	    	<div class="col-md-4">
	    		<h3>Dev</h3>
	    		<p><em>If you are building contributions and modifications to Apache Geode, this is the list for you.</em><p>
	    		<p>To subscribe, send a blank email to<br/><a href="mailto:dev-subscribe@geode.apache.org">dev-subscribe@geode.apache.org</a>.</p>
	    		<p>You can also <a href="https://lists.apache.org/list.html?dev@geode.apache.org">read the archives</a>.</p>
			</div>
	    	<div class="col-md-4">
	    		<h3>Commits</h3>
	    		<p><em>This list receives an email whenever new code is contributed to Apache Geode.</em><p>
	    		<p>To subscribe, send a blank email to<br/><a href="mailto:commits-subscribe@geode.apache.org">commits-subscribe@geode.apache.org</a>.</p>
	    		<p>You can also <a href="https://lists.apache.org/list.html?commits@geode.apache.org">read the archives</a>.</p>
			</div>
		</div>
	    	<div class="col-md-4">
	    		<h3>Issues</h3>
	    		<p><em>This list receives an email when an Apache Geode issue is created or updated.</em><p>
	    		<p>To subscribe, send a blank email to<br/><a href="mailto:issues-subscribe@geode.apache.org">issues-subscribe@geode.apache.org</a>.</p>
	    		<p>You can also <a href="https://lists.apache.org/list.html?issues@geode.apache.org">read the archives</a>.</p>
			</div>
		</div>
	</div>
</section>

<section class="bf-community">
    <div class="container">
    	<div class="row">
    	    <div class="col-md-12" id="events">
    	    	<h2 class="icns-calendar"><span>Events</span></h2>
			</div>
		</div>
    <div class="row">
      <div class="col-md-4">
        <a  href="https://www.apache.org/events/current-event.html">
          <img src="https://www.apache.org/events/current-event-234x60.png"/>
        </a>
      </div>
    	<div class="col-md-4">
    	    	<h3>Watch this space for upcoming Apache Geode events!</h3>
              <p><i>Want to organize an event? Subscribe to the Apache Geode Users list by sending a blank email to<br/><a href="mailto:user-subscribe@geode.apache.org">user-subscribe@geode.apache.org</a>, then email the list with your event idea!</i>
              </p>
      </div>

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

<section class="bf-community">
    <div class="container">
    	<div class="row">
    	    <div class="col-md-12" id="live">
    	    	<h2 class="icns-chat"><span>Live Chat and Geode Presentations</span></h2>
			</div>
		</div>
		<div class="row">
      <div class="col-md-4">
        	<h3><a target="_blank" href="https://stackoverflow.com/search?q=Apache%20Geode">StackOverflow</a></h3>
        	<p>The Geode team is always ready to answer questions on <a href="http://stackoverflow.com/search?q=Apache%20Geode">StackOverflow</a><p>
      </div>
      <div class="col-md-4">
        	<h3><a target="_blank" href="https://www.youtube.com/user/PivotalOpenSourceHub">Pivotal Open Source Hub</a></h3>
        	<p>A YouTube channel with <a target="_blank" href="https://www.youtube.com/user/PivotalOpenSourceHub">Apache Geode videos and presentations</a>, including:<p>
                <ul>
                <li><a target="_blank" href="https://www.youtube.com/playlist?list=PL62pIycqXx-SrrC-iIYJmIEojOo3V27ho">Apache Geode By Example</a></li>
                <li><a target="_blank" href="https://www.youtube.com/playlist?list=PL62pIycqXx-ShuJ1YpV2wlmNZodnqzY8T">Geode Summit 2018 at SpringOne</a></li>
                <li><a target="_blank" href="https://www.youtube.com/playlist?list=PL62pIycqXx-RbKoMA9_QQ_0Wh64AwMdLK">Geode How-to Series</a></li>
                <li><a target="_blank" href="https://www.youtube.com/playlist?list=PL62pIycqXx-R6IxZBlFyD_gq1EwT5CGE-">Geode Clubhouse</a></li>
                </ul>
      </div>
	  </div>
</section>

<section class="bf-community committers">
    <div class="container">
    	<div class="row">
            <div class="col-md-12">
    	    	<h2 class="icns-group" id="committers"><span>Committers</span></h2>
                <a target="_blank" href="https://projects.apache.org/committee.html?geode">Lists of PMC members and Committers</a>
            </div>
        </div>
        <div class="row">
      <br/>
      <div class="col-md-3">
        <h3>&nbsp;</h3>
            <p><i>Want to be added to this list? Join the community, contribute and <a href="mailto:dev@geode.apache.org">contact us!</a></i><p>
      </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="https://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="https://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="https://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="https://www.apache.org/events/" target="_blank">Events</a></li>
                    <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="https://www.apache.org/security/">Security</a></li>
                    <li><a href="https://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="https://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>

