<!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="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. -->

<!-- <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="http://markmail.org/search/?q=list%3Aorg.apache.geode.user+order%3Adate-backward">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="http://markmail.org/search/?q=list%3Aorg.apache.geode.dev+order%3Adate-backward">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="http://markmail.org/search/?q=list%3Aorg.apache.geode.commits+order%3Adate-backward">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:commits-subscribe@geode.apache.org">issues-subscribe@geode.apache.org</a>.</p>
	    		<p>You can also <a href="http://markmail.org/search/?q=list%3Aorg.apache.geode.issues+order%3Adate-backward">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="http://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="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>

