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

<head>
  


<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
<link rel="canonical" href="https://flink.apache.org/2019/09/05/flink-community-update-september19/">

  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="This has been an exciting, fast-paced year for the Apache Flink community. But with over 10k messages across the mailing lists, 3k Jira tickets and 2k pull requests, it is not easy to keep up with the latest state of the project. Plus everything happening around it. With that in mind, we want to bring back regular community updates to the Flink blog.
The first post in the series takes you on an little detour across the year, to freshen up and make sure you&rsquo;re all up to date.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Flink Community Update - September&#39;19" />
<meta property="og:description" content="This has been an exciting, fast-paced year for the Apache Flink community. But with over 10k messages across the mailing lists, 3k Jira tickets and 2k pull requests, it is not easy to keep up with the latest state of the project. Plus everything happening around it. With that in mind, we want to bring back regular community updates to the Flink blog.
The first post in the series takes you on an little detour across the year, to freshen up and make sure you&rsquo;re all up to date." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/2019/09/05/flink-community-update-september19/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2019-09-05T12:00:00+00:00" />
<meta property="article:modified_time" content="2019-09-05T12:00:00+00:00" />
<title>Flink Community Update - September&#39;19 | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/en.search.min.2698f0d1b683dae4d6cb071668b310a55ebcf1c48d11410a015a51d90105b53e.js" integrity="sha256-Jpjw0baD2uTWywcWaLMQpV688cSNEUEKAVpR2QEFtT4="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->

  <meta name="generator" content="Hugo 0.124.1">

    
    <script>
      var _paq = window._paq = window._paq || [];
       
       
      _paq.push(['disableCookies']);
       
      _paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="//analytics.apache.org/";
        _paq.push(['setTrackerUrl', u+'matomo.php']);
        _paq.push(['setSiteId', '1']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    
</head>

<body dir=ZgotmplZ>
  


<header>
  <nav class="navbar navbar-expand-xl">
    <div class="container-fluid">
      <a class="navbar-brand" href="/">
        <img src="/img/logo/png/100/flink_squirrel_100_color.png" alt="Apache Flink" height="47" width="47" class="d-inline-block align-text-middle">
        <span>Apache Flink</span>
      </a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <i class="fa fa-bars navbar-toggler-icon"></i>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav">
          





    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-architecture/">Architecture</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-applications/">Applications</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-operations/">Operations</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/use-cases/">Use Cases</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/powered-by/">Powered By</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/roadmap/">Roadmap</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/community/">Community & Project Info</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/security/">Security</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/special-thanks/">Special Thanks</a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Getting Started</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/">With Flink<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/">With Flink Kubernetes Operator<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/get-started/introduction/">With Flink CDC<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/docs/try-flink-ml/quick-start/">With Flink ML<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/getting-started/project-setup.html">With Flink Stateful Functions<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/learn-flink/overview/">Training Course<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/">Flink 1.19 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-master/">Flink Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">Kubernetes Operator 1.8 (latest)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main">Kubernetes Operator Main (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable">CDC 3.0 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-master">CDC Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">ML 2.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-master">ML Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">Stateful Functions 3.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-master">Stateful Functions Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">How to Contribute</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/overview/">Overview</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/contribute-code/">Contribute Code</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/reviewing-prs/">Review Pull Requests</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/code-style-and-quality-preamble/">Code Style and Quality Guide</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/contribute-documentation/">Contribute Documentation</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/documentation-style-guide/">Documentation Style Guide</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/improve-website/">Contribute to the Website</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/getting-help/">Getting Help</a>
  

          </li>
        
      </ul>
    </li>
  

    


    
      
  
    <li class="nav-item">
      
  
    <a class="nav-link" href="/posts/">Flink Blog</a>
  

    </li>
  

    
      
  
    <li class="nav-item">
      
  
    <a class="nav-link" href="/downloads/">Downloads</a>
  

    </li>
  

    


    









        </ul>
        <div class="book-search">
          <div class="book-search-spinner hidden">
            <i class="fa fa-refresh fa-spin"></i>
          </div>
          <form class="search-bar d-flex" onsubmit="return false;"su>
            <input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/">
            <i class="fa fa-search search"></i>
            <i class="fa fa-circle-o-notch fa-spin spinner"></i>
          </form>
          <div class="book-search-spinner hidden"></div>
          <ul id="book-search-results"></ul>
        </div>
      </div>
    </div>
  </nav>
  <div class="navbar-clearfix"></div>
</header>
 
  
      <main class="flex">
        <section class="container book-page">
          
<article class="markdown">
    <h1>
        <a href="/2019/09/05/flink-community-update-september19/">Flink Community Update - September&#39;19</a>
    </h1>
    


  September 5, 2019 -



  Marta Paes

  <a href="https://twitter.com/morsapaes">(@morsapaes)</a>
  



    <p><p>This has been an exciting, fast-paced year for the Apache Flink community. But with over 10k messages across the mailing lists, 3k Jira tickets and 2k pull requests, it is not easy to keep up with the latest state of the project. Plus everything happening around it. With that in mind, we want to bring back regular community updates to the Flink blog.</p>
<p>The first post in the series takes you on an little detour across the year, to freshen up and make sure you&rsquo;re all up to date.</p>
<h1 id="the-year-so-far-in-flink">
  The Year (so far) in Flink
  <a class="anchor" href="#the-year-so-far-in-flink">#</a>
</h1>
<p>Two major versions were released this year: <a href="https://flink.apache.org/news/2019/04/09/release-1.8.0.html">Flink 1.8</a> and <a href="https://flink.apache.org/news/2019/08/22/release-1.9.0.html">Flink 1.9</a>; paving the way for the goal of making Flink the first framework to seamlessly support stream and batch processing with a single, unified runtime. The <a href="https://flink.apache.org/news/2019/02/13/unified-batch-streaming-blink.html">contribution of Blink</a> to Apache Flink was key in accelerating the path to this vision and reduced the waiting time for long-pending user requests — such as Hive integration, (better) Python support, the rework of Flink&rsquo;s Machine Learning library and&hellip;fine-grained failure recovery (<a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-1&#43;%3A&#43;Fine&#43;Grained&#43;Recovery&#43;from&#43;Task&#43;Failures">FLIP-1</a>).</p>
<p>The 1.9 release was the result of the <strong>biggest community effort the project has experienced so far</strong>, with the number of contributors soaring to 190 (see <a href="#the-bigger-picture">The Bigger Picture</a>). For a quick overview of the upcoming work for Flink 1.10 (and beyond), have a look at the updated <a href="https://flink.apache.org/roadmap.html">roadmap</a>!</p>
<h2 id="integration-of-the-chinese-speaking-community">
  Integration of the Chinese-speaking community
  <a class="anchor" href="#integration-of-the-chinese-speaking-community">#</a>
</h2>
<p>As the number of Chinese-speaking Flink users rapidly grows, the community is working on translating resources and creating dedicated spaces for discussion to invite and include these users in the wider Flink community. Part of the ongoing work is described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-35%3A&#43;Support&#43;Chinese&#43;Documents&#43;and&#43;Website">FLIP-35</a> and has resulted in:</p>
<ul>
<li>A new user mailing list (<a href="mailto:user-zh@f.a.o">user-zh@f.a.o</a>) dedicated to Chinese-speakers.</li>
</ul>
<p></p>
* A Chinese translation of the Apache Flink [website](https://flink.apache.org/zh/) and [documentation](//nightlies.apache.org/flink/flink-docs-master/zh/).
<p></p>
* Multiple meetups organized all over China, with the biggest one reaching a whopping number of 500+ participants. Some of these meetups were also organized in collaboration with communities from other projects, like Apache Pulsar and Apache Kafka.
<center>
<img src="/img/blog/2019-09-05-flink-community-update/2019-09-05-flink-community-update_3.png" width="800px" alt="China Meetup"/>
</center>
<p>In case you&rsquo;re interested in knowing more about this work in progress, Robert Metzger and Fabian Hueske will be diving into &ldquo;Inviting Apache Flink&rsquo;s Chinese User Community&rdquo; at the upcoming ApacheCon Europe 2019 (see <a href="#upcoming-flink-community-events">Upcoming Flink Community Events</a>).</p>
<h2 id="improving-flinks-documentation">
  Improving Flink&rsquo;s Documentation
  <a class="anchor" href="#improving-flinks-documentation">#</a>
</h2>
<p>Besides the translation effort, the community has also been working quite hard on a <strong>Flink docs overhaul</strong>. The main goals are to:</p>
<ul>
<li>Organize and clean-up the structure of the docs;</li>
</ul>
 <p></p>
 * Align the content with the overall direction of the project;
 <p></p>
 * Improve the _getting-started_ material and make the content more accessible to different levels of Flink experience. 
<p>Given that there has been some confusion in the past regarding unclear definition of core Flink concepts, one of the first completed efforts was to introduce a <a href="//nightlies.apache.org/flink/flink-docs-release-1.9/concepts/glossary.html#glossary">Glossary</a> in the docs. To get up to speed with the roadmap for the remainder efforts, you can refer to <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-42%3A&#43;Rework&#43;Flink&#43;Documentation">FLIP-42</a> and the corresponding <a href="https://issues.apache.org/jira/browse/FLINK-12639">umbrella Jira ticket</a>.</p>
<h2 id="adjusting-the-contribution-process-and-experience">
  Adjusting the Contribution Process and Experience
  <a class="anchor" href="#adjusting-the-contribution-process-and-experience">#</a>
</h2>
<p>The <a href="https://flink.apache.org/contributing/how-to-contribute.html">guidelines</a> to contribute to Apache Flink have been reworked on the website, in an effort to lower the entry barrier for new contributors and reduce the overall friction in the contribution process. In addition, the Flink community discussed and adopted <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=120731026">bylaws</a> to help the community collaborate and coordinate more smoothly.</p>
<p>For code contributors, a <a href="https://flink.apache.org/contributing/code-style-and-quality-preamble.html">Code Style and Quality Guide</a> that captures the expected standards for contributions was also added to the &ldquo;Contributing&rdquo; section of the Flink website.</p>
<p>It&rsquo;s important to stress that <strong>contributions are not restricted to code</strong>. Non-code contributions such as mailing list support, documentation work or organization of community events are equally as important to the development of the project and highly encouraged.</p>
<h2 id="new-committers-and-pmc-members">
  New Committers and PMC Members
  <a class="anchor" href="#new-committers-and-pmc-members">#</a>
</h2>
<p>The Apache Flink community has welcomed <strong>5 new Committers</strong> and <strong>4 PMC (Project Management Committee) Members</strong> in 2019, so far:</p>
<h3 id="new-pmc-members">
  New PMC Members
  <a class="anchor" href="#new-pmc-members">#</a>
</h3>
<pre><code>Jincheng Sun, Kete (Kurt) Young, Kostas Kloudas, Thomas Weise
</code></pre>
<h3 id="new-committers">
  New Committers
  <a class="anchor" href="#new-committers">#</a>
</h3>
<pre><code>Andrey Zagrebin, Hequn, Jiangjie (Becket) Qin, Rong Rong, Zhijiang Wang
</code></pre>
<p>Congratulations and thank you for your hardworking commitment to Flink!</p>
<h1 id="the-bigger-picture">
  The Bigger Picture
  <a class="anchor" href="#the-bigger-picture">#</a>
</h1>
<p>Flink continues to push the boundaries of (stream) data processing, and the community is proud to see an ever-increasingly diverse set of contributors, users and technologies join the ecosystem.</p>
<p>In the timeframe of three releases, the project jumped from <strong>112 to 190 contributors</strong>, also doubling down on the number of requested changes and improvements. To top it off, the Flink GitHub repository recently reached the milestone of <strong>10k stars</strong>, all the way up from the incubation days in 2014.</p>
<center>
<img src="/img/blog/2019-09-05-flink-community-update/2019-09-05-flink-community-update_1.png" width="1000px" alt="GitHub"/>
</center>
<p>The activity across the user@ and dev@<sup>1</sup> mailing lists shows a healthy heartbeat, and the gradual ramp up of user-zh@ suggests that this was a well-received community effort. Looking at the numbers for the same period in 2018, the dev@ mailing list has seen the biggest surge in activity, with an average growth of <strong>2.5x in the number of messages and distinct users</strong> — a great reflection of the hyperactive pace of development of the Flink codebase.</p>
<img style="float: right;" src="/img/blog/2019-09-05-flink-community-update/2019-09-05-flink-community-update_2.png" width="420px" alt="Mailing Lists"/>
<p>In support of these observations, the report for the financial year of 2019 from the Apache Software Foundation (ASF) features Flink as one of the most thriving open source projects, with mentions for:</p>
<ul>
<li>Most Active Visits and Downloads</li>
</ul>
<p></p>
* Most Active Sources: Visits
<p></p>
* Most Active Sources: Clones
<p></p>
* Top Repositories by Number of Commits
<p></p>
* Top Most Active Apache Mailing Lists (user@ and dev@)
<p>Hats off to our fellows at Apache Beam for an astounding year, too! For more detailed insights, check the <a href="https://s3.amazonaws.com/files-dist/AnnualReports/FY2018%20Annual%20Report.pdf">full report</a>.</p>
<p></p>
<sup>1. Excluding messages from "jira@apache.org".</sup>
<h1 id="upcoming-events">
  Upcoming Events
  <a class="anchor" href="#upcoming-events">#</a>
</h1>
<p>As the conference and meetup season ramps up again, here are some events to keep an eye out for talks about Flink and opportunities to mingle with the wider stream processing community.</p>
<h3 id="north-america">
  North America
  <a class="anchor" href="#north-america">#</a>
</h3>
<ul>
<li>[Conference] <strong><a href="https://conferences.oreilly.com/strata/strata-ny">Strata Data Conference 2019</a></strong>, September 23-26, New York, USA
<p></p>
</li>
<li>[Meetup] <strong><a href="https://www.meetup.com/Bay-Area-Apache-Flink-Meetup/events/262680261/">Apache Flink Bay Area Meetup</a></strong>, September 24, San Francisco, USA
<p></p>
</li>
<li>[Conference] <strong><a href="https://www.meetup.com/Bay-Area-Apache-Flink-Meetup/events/262680261/">Scale By The Bay 2019</a></strong>, November 13-15, San Francisco, USA</li>
</ul>
<h3 id="europe">
  Europe
  <a class="anchor" href="#europe">#</a>
</h3>
<ul>
<li>
<p>[Meetup] <strong><a href="https://www.meetup.com/Apache-Flink-London-Meetup/events/264123672">Apache Flink London Meetup</a></strong>, September 23, London, UK</p>
  <p></p>
</li>
<li>
<p>[Conference] <strong><a href="https://europe-2019.flink-forward.org">Flink Forward Europe 2019</a></strong>, October 7-9, Berlin, Germany</p>
  <p></p>
  * The next edition of Flink Forward Europe is around the corner and the [program](https://europe-2019.flink-forward.org/conference-program) has been announced, featuring 70+ talks as well as panel discussions and interactive "Ask Me Anything" sessions with core Flink committers. If you're looking to learn more about Flink and share your experience with other community members, there really is [no better place]((https://vimeo.com/296403091)) than Flink Forward!
<ul>
<li><strong>Note:</strong> if you are a <strong>committer for any Apache project</strong>, you can <strong>get a free ticket</strong> by registering with your Apache email address and using the discount code: <em>FFEU19-ApacheCommitter</em>.</li>
</ul>
</li>
</ul>
<p></p>
* [Conference] **[ApacheCon Berlin 2019](https://aceu19.apachecon.com/)**, October 22-24, Berlin, Germany
<p></p>
* [Conference] **[Data2Day 2019](https://www.data2day.de/)**, October 22-24, Ludwigshafen, Germany
<p></p>
* [Conference] **[Big Data Tech Warsaw 2020](https://bigdatatechwarsaw.eu)**, February 7, Warsaw, Poland
	<p></p>
	* The Call For Presentations (CFP) is now [open](https://bigdatatechwarsaw.eu/cfp/).
<h3 id="asia">
  Asia
  <a class="anchor" href="#asia">#</a>
</h3>
<ul>
<li>[Conference] <strong><a href="https://m.aliyun.com/markets/aliyun/developer/ffa2019">Flink Forward Asia 2019</a></strong>, November 28-30, Beijing, China
  <p></p>
  * The second edition of Flink Forward Asia is also happening later this year, in Beijing, and the CFP is [open](https://developer.aliyun.com/special/ffa2019) until September 20.
</li>
</ul>
<p>If you&rsquo;d like to keep a closer eye on what’s happening in the community, subscribe to the <a href="https://flink.apache.org/community.html#mailing-lists">community mailing list</a> to get fine-grained weekly updates, upcoming event announcements and more. Also, please reach out if you&rsquo;re interested in organizing or being part of Flink events in your area!</p>
</p>
</article>

          



  
    
    <div class="edit-this-page">
      <p>
        <a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
      </p>
      <p>
        <a href="//github.com/apache/flink-web/edit/asf-site/docs/content/posts/2019-09-05-community-update.md">
          Edit This Page<i class="fa fa-edit fa-fw"></i> 
        </a>
      </p>
    </div>

        </section>
        
          <aside class="book-toc">
            


<nav id="TableOfContents"><h3>On This Page <a href="javascript:void(0)" class="toc" onclick="collapseToc()"><i class="fa fa-times" aria-hidden="true"></i></a></h3>
  <ul>
    <li><a href="#the-year-so-far-in-flink">The Year (so far) in Flink</a>
      <ul>
        <li><a href="#integration-of-the-chinese-speaking-community">Integration of the Chinese-speaking community</a></li>
        <li><a href="#improving-flinks-documentation">Improving Flink&rsquo;s Documentation</a></li>
        <li><a href="#adjusting-the-contribution-process-and-experience">Adjusting the Contribution Process and Experience</a></li>
        <li><a href="#new-committers-and-pmc-members">New Committers and PMC Members</a>
          <ul>
            <li><a href="#new-pmc-members">New PMC Members</a></li>
            <li><a href="#new-committers">New Committers</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#the-bigger-picture">The Bigger Picture</a></li>
    <li><a href="#upcoming-events">Upcoming Events</a>
      <ul>
        <li>
          <ul>
            <li><a href="#north-america">North America</a></li>
            <li><a href="#europe">Europe</a></li>
            <li><a href="#asia">Asia</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</nav>


          </aside>
          <aside class="expand-toc hidden">
            <a class="toc" onclick="expandToc()" href="javascript:void(0)">
              <i class="fa fa-bars" aria-hidden="true"></i>
            </a>
          </aside>
        
      </main>

      <footer>
        


<div class="separator"></div>
<div class="panels">
  <div class="wrapper">
      <div class="panel">
        <ul>
          <li>
            <a href="https://flink-packages.org/">flink-packages.org</a>
          </li>
          <li>
            <a href="https://www.apache.org/">Apache Software Foundation</a>
          </li>
          <li>
            <a href="https://www.apache.org/licenses/">License</a>
          </li>
          
          
          
            
          
            
          
          

          
            
              
            
          
            
              
                <li>
                  <a  href="/zh/">
                    <i class="fa fa-globe" aria-hidden="true"></i>&nbsp;中文版
                  </a>
                </li>
              
            
          
       </ul>
      </div>
      <div class="panel">
        <ul>
          <li>
            <a href="/what-is-flink/security">Security</a-->
          </li>
          <li>
            <a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
          </li>
          <li>
            <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
          </li>
       </ul>
      </div>
      <div class="panel icons">
        <div>
          <a href="/posts">
            <div class="icon flink-blog-icon"></div>
            <span>Flink blog</span>
          </a>
        </div>
        <div>
          <a href="https://github.com/apache/flink">
            <div class="icon flink-github-icon"></div>
            <span>Github</span>
          </a>
        </div>
        <div>
          <a href="https://twitter.com/apacheflink">
            <div class="icon flink-twitter-icon"></div>
            <span>Twitter</span>
          </a>
        </div>
      </div>
  </div>
</div>

<hr/>

<div class="container disclaimer">
  <p>The contents of this website are © 2024 Apache Software Foundation under the terms of the Apache License v2. Apache Flink, Flink, and the Flink logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>



      </footer>
    
  </body>
</html>






