<!DOCTYPE html>
<html lang="en">
  <head>	
    <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Apache Druid">
<meta name="keywords" content="druid,kafka,database,analytics,streaming,real-time,real time,apache,open source">
<meta name="author" content="Apache Software Foundation">

<title>Druid | Apache Druid Community</title>
<link rel="canonical" href="https://druid.apache.org/community/" />
<link rel="alternate" type="application/atom+xml" href="/feed">
<link rel="shortcut icon" href="/img/favicon.png">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">

<link href='//fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic|Open+Sans:300italic,400italic,600italic,400,300,600,700' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="/css/bootstrap-pure.css?v=1.1">
<link rel="stylesheet" href="/css/base.css?v=1.1">
<link rel="stylesheet" href="/css/header.css?v=1.1">
<link rel="stylesheet" href="/css/footer.css?v=1.1">
<link rel="stylesheet" href="/css/syntax.css?v=1.1">
<link rel="stylesheet" href="/css/docs.css?v=1.1">

<script>
  (function() {
    var cx = '000162378814775985090:molvbm0vggm';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>


  </head>
  <body>	
    <!-- Start page_header include -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<div class="top-navigator">
  <div class="container">
    <div class="left-cont">
      <a class="logo" href="/"><span class="druid-logo"></span></a>
    </div>
    <div class="right-cont">
      <ul class="links">
        <li class=""><a href="/technology">Technology</a></li>
        <li class=""><a href="/use-cases">Use Cases</a></li>
        <li class=""><a href="/druid-powered">Powered By</a></li>
        <li class=""><a href="/docs/latest/design/">Docs</a></li>
        <li class=" active"><a href="/community/">Community</a></li>
        <li class="header-dropdown">
          <a>Apache</a>
          <div class="header-dropdown-menu">
            <a href="https://www.apache.org/" target="_blank">Foundation</a>
            <a href="https://www.apache.org/events/current-event" target="_blank">Events</a>
            <a href="https://www.apache.org/licenses/" target="_blank">License</a>
            <a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a>
            <a href="https://www.apache.org/security/" target="_blank">Security</a>
            <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a>
          </div>
        </li>
        <li class=" button-link"><a href="/downloads.html">Download</a></li>
      </ul>
    </div>
  </div>
  <div class="action-button menu-icon">
    <span class="fa fa-bars"></span> MENU
  </div>
  <div class="action-button menu-icon-close">
    <span class="fa fa-times"></span> MENU
  </div>
</div>

<script type="text/javascript">
  var $menu = $('.right-cont');
  var $menuIcon = $('.menu-icon');
  var $menuIconClose = $('.menu-icon-close');

  function showMenu() {
    $menu.fadeIn(100);
    $menuIcon.fadeOut(100);
    $menuIconClose.fadeIn(100);
  }

  $menuIcon.click(showMenu);

  function hideMenu() {
    $menu.fadeOut(100);
    $menuIconClose.fadeOut(100);
    $menuIcon.fadeIn(100);
  }

  $menuIconClose.click(hideMenu);

  $(window).resize(function() {
    if ($(window).width() >= 840) {
      $menu.fadeIn(100);
      $menuIcon.fadeOut(100);
      $menuIconClose.fadeOut(100);
    }
    else {
      $menu.fadeOut(100);
      $menuIcon.fadeIn(100);
      $menuIconClose.fadeOut(100);
    }
  });
</script>

<!-- Stop page_header include -->


    <div class="druid-header">
  <div class="container">
    <h1>Apache Druid Community</h1>
    <h4></h4>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col-md-10 col-md-offset-1">
      <h2 id="community">Community</h2>

<p>Most discussion about Druid happens over email and GitHub, but those aren&#39;t the only way to interact with the Druid
community. We also do chat, meetups, and more. Check out the following resources if you&#39;re looking for help, to discuss
Druid development, or just stay up to date:</p>

<ul>
<li><strong>User mailing list:</strong> <a href="https://groups.google.com/forum/#!forum/druid-user">druid-user@googlegroups.com</a> for general
discussion, questions, and announcements. This is the perfect place to ask for help if you need it!</li>
<li><strong>Druid Forum:</strong> Ask and answer questions, read and submit tips and tricks, and find links to Apache Druid articles and videos in the <a href="https://www.druidforum.org/">Druid Forum</a> (by Imply).</li>
<li><strong>Development mailing list:</strong> <a href="https://lists.apache.org/list.html?dev@druid.apache.org">dev@druid.apache.org</a> for
discussion about project development.</li>
<li><strong>GitHub:</strong> Star us at <a href="https://github.com/apache/druid">apache/druid</a> and use this to follow Druid development, raise
issues, or contribute pull requests. If you&#39;re interested in development, please see the <a href="#contributing">Contributing</a>
section below for details on our development process.</li>
<li><strong>Meetups:</strong> Check out <a href="https://www.meetup.com/topics/apache-druid/">Apache Druid on meetup.com</a> for links to regular
meetups in cities all over the world.</li>
<li><strong>Slack:</strong> Many users and committers are present on Apache Druid Slack. Use this link to join and invite others: <a href="/community/join-slack?v=1">https://druid.apache.org/community/join-slack</a></li>
<li><strong>Twitter:</strong> Follow us on Twitter at <a href="https://twitter.com/druidio">@druidio</a>.</li>
<li><strong>StackOverflow:</strong> While the user mailing list is the primary resource for asking questions, if you prefer
StackOverflow, make sure to tag your question with <code>druid</code> or <code>apache-druid</code>.</li>
</ul>

<h2 id="getting-help">Getting help</h2>

<p>The best place to get a wide variety of help about Druid is via <code>#druid</code> on the Apache Slack team. There is also a druid user 
google group <a href="https://groups.google.com/forum/#!forum/druid-user">druid-user@googlegroups.com</a> however slack is the preferred way to get help. You can also report issues and problems, or suggest
new features, on <a href="https://github.com/apache/druid">GitHub</a>.</p>

<p>Third party companies also provide commercial support and services for Druid, including:</p>

<ul>
<li><a href="https://www.cloudera.com/">Cloudera</a></li>
<li><a href="https://datumo.io/">Datumo</a></li>
<li><a href="https://www.deep.bi/solutions/apache-druid">Deep.BI</a></li>
<li><a href="https://imply.io/">Imply</a></li>
<li><a href="https://www.rilldata.com/">Rill Data</a></li>
</ul>

<h2 id="contributing">Contributing</h2>

<p>Druid is a community-led project and we are delighted to receive contributions
of anything from minor fixes to big new features.</p>

<h3 id="what-to-work-on">What to work on</h3>

<p>If you have an itch to scratch, then by all means do that! Fixing bugs you run
into, or adding features you need, are both immensely helpful.</p>

<p>If you&#39;re looking for some starter projects, we maintain a <a href="https://github.com/apache/druid/issues?q=is%3Aopen+is%3Aissue+label%3AStarter">list of issues</a> suitable
for new developers.</p>

<p>There are plenty of ways to help outside writing Druid code. <em>Code review of pull requests</em>
(even if you are not a committer), feature suggestions, reporting bugs, <a href="/docs//">documentation</a>
and usability feedback all matter immensely. Another big way to help is
through <a href="/docs/latest/development/libraries.html">client libraries</a>, which are
avaialble in a variety of languages. If you develop a new one, we&#39;ll be happy
to include it in the list.</p>

<h3 id="getting-your-changes-accepted">Getting your changes accepted</h3>

<p>Patches to Druid are done through <a href="https://github.com/apache/druid/pulls">GitHub pull requests</a>.</p>

<p>Pull requests require one approval (+1) from an established committer on code and text (for documentation) levels. The
exception is major architectural changes or API changes, and/or changes to</p>

<ul>
<li>HTTP requests and responses (e. g. a new HTTP endpoint)</li>
<li><a href="/docs/latest/development/modules.html">Interfaces for extensions</a></li>
<li>Server configuration (e. g. altering the behavior of a config property)</li>
<li>Emitted metrics</li>
<li>Other major changes, judged by the discretion of Druid committers</li>
</ul>

<p>warrant additional design and compatibility review. Such pull requests require design approvals from three different
committers (one of them could also be the author of the pull request). For those, it can help to discuss things
on the Druid development list <a href="https://lists.apache.org/list.html?dev@druid.apache.org">dev@druid.apache.org</a> or a github issue beforehand.</p>

<p>In general please follow the <a href="https://github.com/apache/druid/blob/master/CONTRIBUTING.md">contributing guidelines</a>
when sending in pull requests. This will help review proceed as quickly as
possible.</p>

<h3 id="testing">Testing</h3>

<p>All Pull Requests are automatically tested on <a href="https://travis-ci.com/apache/druid">Travis CI</a> on both AMD64 and ARM64 architectures.</p>

<h3 id="committers">Committers</h3>

<p>Committers are collectively responsible for Druid&#39;s technical management. This involves
setting the direction of the project, contributing code, and reviewing code contributed
by others.</p>

<p>You don&#39;t need to be a committer to contribute- pull requests are welcome from anyone.</p>

<table><thead>
<tr>
<th>Name</th>
<th>Organization</th>
</tr>
</thead><tbody>
<tr>
<td><a href="https://github.com/abhishekagarwal87">Abhishek Agarwal</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/AlexanderSaydakov">Alexander Saydakov</a></td>
<td><a href="https://www.verizonmedia.com/">Verizon Media</a></td>
</tr>
<tr>
<td><a href="https://github.com/a2l007">Atul Mohan</a></td>
<td><a href="https://www.yahoo.com/">Yahoo</a></td>
</tr>
<tr>
<td><a href="https://github.com/asdf2014">Benedict Jin</a></td>
<td><a href="https://www.alibaba.com/">Alibaba</a></td>
</tr>
<tr>
<td><a href="https://github.com/drcrallen">Charles Allen</a></td>
<td><a href="https://www.snap.com/en-US/">Snap</a></td>
</tr>
<tr>
<td><a href="https://github.com/ccaominh">Chi Cao Minh</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/clintropolis">Clint Wylie</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/glasser">David Glasser</a></td>
<td><a href="https://apollographql.com/">Apollo GraphQL</a></td>
</tr>
<tr>
<td><a href="https://github.com/dclim">David Lim</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/gaodayue">Daoyue Gao</a></td>
<td><a href="http://www.meituan.com/">Meituan</a></td>
</tr>
<tr>
<td><a href="https://github.com/Dylan1312">Dylan Wylie</a></td>
<td><a href="https://www.spotx.tv/">SpotX</a></td>
</tr>
<tr>
<td><a href="https://github.com/egor-ryashin">Egor Rashin</a></td>
<td><a href="https://www.rilldata.com/">Rill Data</a></td>
</tr>
<tr>
<td><a href="https://github.com/cheddar">Eric Tschetter</a></td>
<td><a href="https://www.splunk.com/">Splunk</a></td>
</tr>
<tr>
<td><a href="https://github.com/fjy">Fangjin Yang</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/Fokko">Fokko Driesprong</a></td>
<td><a href="https://godatadriven.com/">GoDataDriven</a></td>
</tr>
<tr>
<td><a href="https://github.com/FrankChen021">Frank Chen</a></td>
<td><a href="https://shopee.sg/">Shopee</a></td>
</tr>
<tr>
<td><a href="https://github.com/kamaci">Furkan Kamaci</a></td>
<td><a href="https://lagom.ai/">Lagom</a></td>
</tr>
<tr>
<td><a href="https://github.com/gianm">Gian Merlino</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/himanshug">Himanshu Gupta</a></td>
<td><a href="https://www.splunk.com/">Splunk</a></td>
</tr>
<tr>
<td><a href="https://github.com/jihoonson">Jihoon Son</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/jon-wei">Jonathan Wei</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/julianhyde">Julian Hyde</a></td>
<td><a href="https://looker.com/">Looker</a></td>
</tr>
<tr>
<td><a href="https://github.com/junrao">Jun Rao</a></td>
<td><a href="https://www.confluent.io/">Confluent</a></td>
</tr>
<tr>
<td><a href="https://github.com/kaijianding">Kaijian Ding</a></td>
<td><a href="https://www.alibaba.com/">Alibaba</a></td>
</tr>
<tr>
<td><a href="https://github.com/kfaraz">Kashif Faraz</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/kurtyoung">Kurt Young</a></td>
<td><a href="https://www.alibaba.com/">Alibaba</a></td>
</tr>
<tr>
<td><a href="https://github.com/binlijin">Lijin Bin</a></td>
<td><a href="https://www.alibaba.com/">Alibaba</a></td>
</tr>
<tr>
<td><a href="https://github.com/capistrant">Lucas Capistrant</a></td>
<td><a href="https://www.target.com/">Target</a></td>
</tr>
<tr>
<td><a href="https://github.com/mcbrewster">Maggie Brewster</a></td>
<td><a href="https://www.imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/mistercrunch">Maxime Beauchemin</a></td>
<td><a href="http://preset.io/">Preset</a></td>
</tr>
<tr>
<td><a href="https://github.com/maytasm">Maytas Monsereenusorn</a></td>
<td><a href="https://www.imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/michaelschiff">Michael Schiff</a></td>
<td><a href="https://www.adobe.com/">Adobe</a></td>
</tr>
<tr>
<td><a href="https://github.com/QiuMM">Mingming Qiu</a></td>
<td><a href="https://bytedance.com/">Bytedance</a></td>
</tr>
<tr>
<td><a href="https://github.com/b-slim">Mohamed Slim Bouguerra</a></td>
<td><a href="https://www.linkedin.com/">LinkedIn</a></td>
</tr>
<tr>
<td><a href="https://github.com/navis">Navis Ryu</a></td>
<td><a href="https://www.sktelecom.com/index.html">SK Telecom</a></td>
</tr>
<tr>
<td><a href="https://github.com/niketh">Niketh Sabbineni</a></td>
<td><a href="https://www.verizonmedia.com/">Verizon Media</a></td>
</tr>
<tr>
<td><a href="https://github.com/nishantmonu51">Nishant Bangarwa</a></td>
<td><a href="https://www.rilldata.com/">Rill Data</a></td>
</tr>
<tr>
<td><a href="https://github.com/pjain1">Parag Jain</a></td>
<td><a href="https://www.rilldata.com/">Rill Data</a></td>
</tr>
<tr>
<td><a href="https://github.com/ptgoetz">P. Taylor Goetz</a></td>
<td><a href="https://www.epam.com/">EPAM</a></td>
</tr>
<tr>
<td><a href="https://github.com/leventov">Roman Leventov</a></td>
<td><a href="https://www.snap.com/en-US/">Snap</a></td>
</tr>
<tr>
<td><a href="https://github.com/samarthjain">Samarth Jain</a></td>
<td><a href="https://www.netflix.com/">Netflix</a></td>
</tr>
<tr>
<td><a href="https://github.com/sthetland">Steve Hetland</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/suneet-s">Suneet Saldanha</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/surekhasaharan">Surekha Saharan</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/vogievetsky">Vadim Ogievetsky</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
<tr>
<td><a href="https://github.com/xvrl">Xavier Léauté</a></td>
<td><a href="https://www.confluent.io/">Confluent</a></td>
</tr>
<tr>
<td><a href="https://github.com/zhangxinyu1">Xinyu Zhang</a></td>
<td><a href="https://www.360.cn/">Qihoo 360</a></td>
</tr>
<tr>
<td><a href="https://github.com/zhangyue19921010">Yue Zhang</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://github.com/zachjsh">Zach Sherman</a></td>
<td><a href="https://imply.io/">Imply</a></td>
</tr>
</tbody></table>

<h3 id="becoming-a-committer">Becoming a committer</h3>

<p>If you&#39;d like to become a committer, that&#39;s great! Please contact one of the
existing committers for a walk through the process. Basically, what we&#39;re
looking for is an interest in ongoing contributions to Druid.</p>

<h3 id="general-committer-guidelines">General committer guidelines</h3>

<p>If you are an official Druid committer then congratulations! You are part of a fantastic group of people. Here are some guidelines to follow to help ensure the Druid project continues to grow and improve:</p>

<ol>
<li>You can merge your own pull request if it fits the rest of the criteria. A common thing to see is &quot;+1 after travis&quot; from other committers.</li>
<li>A pull request should have at least one +1 from a committer who is not the author, on the &quot;code/textual&quot; level of review.</li>
<li>Pull requests which have just one +1 from a committer couldn&#39;t be merged earlier than after 3 working days since PR submission.</li>
<li>A pull request with just one +1 could be merged only by (or in coordination with) the committer who provided the review. Because the reviewer may think that the PR is complex or risky enough that needs another pair of eyes to look at it. If this is the case, the first reviewer should indicate this in the PR approval message.</li>
<li>If a pull request has two or more +1&#39;s from committers who are not the author, it could be merged immediately and by any committer. But still, enough time since the PR submission should pass to give folks a reasonable chance to indicate a desire to comment on the pull request. AKA: don&#39;t merge a pull request that was submitted Friday evening until at least 1~2 regular work days have passed. Use good judgement here.</li>
<li>Major architectural and backwards incompatible changes, or changes which have long-term maintainance consequences (see examples in <a href="#getting-your-changes-accepted">the &quot;Getting your changes accepted&quot; section above</a>), should have at least three +1&#39;s from committers, on the &quot;design&quot; level of review. One approval could be from the author of the PR. The first committer who indicates that a PR needs design review should add the <code>Design Review</code> tag to such a pull request.</li>
<li>Travis-CI should pass or have some <strong>very</strong> good reason why it won&#39;t pass for a pull request.</li>
<li>You reasonably believe that all comments have been addressed.</li>
<li>You are expected to be the champion for your own pull requests.</li>
<li>Being a champion on a pull request can be a significant undertaking depending on the size of the code change and what parts of the code it touches. It may require communicating with other developers, reconciling differences, organizing community feedback, and/or following up with people who have commented in a pull request to ensure comments have been addressed.</li>
<li>Sometimes code is presented as a work-in-progress or as a point of discussion. Use the <code>WIP</code> or <code>Discuss</code> tags on a pull request in such a case.</li>
<li>If a pull request you are championing is taking longer than expected to merge, be sure to raise the issue in the developer sync.</li>
<li>Limit the number of pull requests you are championing at the same time.</li>
<li>Prioritize code reviews to look at pull requests that are blockers for the next release (see the Milestone marker on the pull request)</li>
<li>Help serve as champion for pull requests that originate from new committers.</li>
<li>If you feel a pull request is required for the next release, mark it as such in the Milestone of the pull request.</li>
<li>Do not comment on a pull request unless you are willing to follow up on the edits.</li>
<li>Give priority to getting older pull requests merged. (Either as their champion or as an active commenter)</li>
<li>And most importantly.. the PMC desires to ensure a positive and effective developer experience! If you find that things are not functioning to your expectations, pleaes raise the issue.</li>
</ol>

<p>Remember, we all want to see this project thrive!</p>

<h2 id="governance">Governance</h2>

<p>The PMC (Project Management Committee) is responsible for the administrative
aspects of the Druid project. The responsibilities of the PMC include:</p>

<ul>
<li>Approving releases</li>
<li>Nominating new committers</li>
<li>Maintaining the project&#39;s shared resources, including the github account,
mailing lists, websites, social media channels, etc.</li>
<li>Maintaining guidelines for the project</li>
</ul>

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

    
    <!-- Start page_footer include -->
<footer class="druid-footer">
<div class="container">
  <div class="text-center">
    <p>
    <a href="/technology">Technology</a>&ensp;·&ensp;
    <a href="/use-cases">Use Cases</a>&ensp;·&ensp;
    <a href="/druid-powered">Powered by Druid</a>&ensp;·&ensp;
    <a href="/docs/latest/">Docs</a>&ensp;·&ensp;
    <a href="/community/">Community</a>&ensp;·&ensp;
    <a href="/downloads.html">Download</a>&ensp;·&ensp;
    <a href="/faq">FAQ</a>
    </p>
  </div>
  <div class="text-center">
    <a title="Join the user group" href="https://groups.google.com/forum/#!forum/druid-user" target="_blank"><span class="fa fa-comments"></span></a>&ensp;·&ensp;
    <a title="Follow Druid" href="https://twitter.com/druidio" target="_blank"><span class="fab fa-twitter"></span></a>&ensp;·&ensp;
    <a title="GitHub" href="https://github.com/apache/druid" target="_blank"><span class="fab fa-github"></span></a>
  </div>
  <div class="text-center license">
    Copyright © 2020 <a href="https://www.apache.org/" target="_blank">Apache Software Foundation</a>.<br>
    Except where otherwise noted, licensed under <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.<br>
    Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
  </div>
</div>
</footer>

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-131010415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'UA-131010415-1');
</script>
<script>
  function trackDownload(type, url) {
    ga('send', 'event', 'download', type, url);
  }
</script>
<script src="//code.jquery.com/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="/assets/js/druid.js"></script>
<!-- stop page_footer include -->

    
  </body>
</html>
