
<!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/2020/07/29/flink-community-update-july20/">

  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="As July draws to an end, we look back at a monthful of activity in the Flink community, including two releases (!) and some work around improving the first-time contribution experience in the project.
Also, events are starting to pick up again, so we&rsquo;ve put together a list of some great ones you can (virtually) attend in August!
The Past Month in Flink # Flink Releases # Flink 1.11 # A couple of weeks ago, Flink 1.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Flink Community Update - July&#39;20" />
<meta property="og:description" content="As July draws to an end, we look back at a monthful of activity in the Flink community, including two releases (!) and some work around improving the first-time contribution experience in the project.
Also, events are starting to pick up again, so we&rsquo;ve put together a list of some great ones you can (virtually) attend in August!
The Past Month in Flink # Flink Releases # Flink 1.11 # A couple of weeks ago, Flink 1." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/2020/07/29/flink-community-update-july20/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-07-29T08:00:00+00:00" />
<meta property="article:modified_time" content="2020-07-29T08:00:00+00:00" />
<title>Flink Community Update - July&#39;20 | 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="/2020/07/29/flink-community-update-july20/">Flink Community Update - July&#39;20</a>
    </h1>
    


  July 29, 2020 -



  Marta Paes

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



    <p><p>As July draws to an end, we look back at a monthful of activity in the Flink community, including two releases (!) and some work around improving the first-time contribution experience in the project.</p>
<p>Also, events are starting to pick up again, so we&rsquo;ve put together a list of some great ones you can (virtually) attend in August!</p>
<h1 id="the-past-month-in-flink">
  The Past Month in Flink
  <a class="anchor" href="#the-past-month-in-flink">#</a>
</h1>
<h2 id="flink-releases">
  Flink Releases
  <a class="anchor" href="#flink-releases">#</a>
</h2>
<h3 id="flink-111">
  Flink 1.11
  <a class="anchor" href="#flink-111">#</a>
</h3>
<p>A couple of weeks ago, Flink 1.11 was announced in what was (again) the biggest Flink release to date (<em>see <a href="#a-look-into-the-evolution-of-flink-releases">&ldquo;A Look Into the Evolution of Flink Releases&rdquo;</a></em>)! The new release brought significant improvements to usability as well as new features to Flink users across the API stack. Some highlights of Flink 1.11 are:</p>
<ul>
<li>
<p>Unaligned checkpoints to cope with high backpressure scenarios;</p>
</li>
<li>
<p>The new source API, that simplifies and unifies the implementation of (custom) sources;</p>
</li>
<li>
<p>Support for Change Data Capture (CDC) and other common use cases in the Table API/SQL;</p>
</li>
<li>
<p>Pandas UDFs and other performance optimizations in PyFlink, making it more powerful for data science and ML workloads.</p>
</li>
</ul>
<p>For a more detailed look into the release, you can recap the <a href="https://flink.apache.org/news/2020/07/06/release-1.11.0.html">announcement blogpost</a> and join the upcoming meetup on <a href="https://www.meetup.com/seattle-flink/events/271922632/">“What’s new in Flink 1.11?”</a>, where you’ll be able to ask anything release-related to Aljoscha Krettek (Flink PMC Member). The community has also been working on a series of blogposts that deep-dive into the most significant features and improvements in 1.11, so keep an eye on the <a href="https://flink.apache.org/blog/">Flink blog</a>!</p>
<h3 id="flink-1111">
  Flink 1.11.1
  <a class="anchor" href="#flink-1111">#</a>
</h3>
<p>Shortly after releasing Flink 1.11, the community announced the first patch version to cover some outstanding issues in the major release. This version is <strong>particularly important for users of the Table API/SQL</strong>, as it addresses known limitations that affect the usability of new features like changelog sources and support for JDBC catalogs.</p>
<p>You can find a detailed list with all the improvements and bugfixes that went into Flink 1.11.1 in the <a href="https://flink.apache.org/news/2020/07/21/release-1.11.1.html">announcement blogpost</a>.</p>
<hr>
<h2 id="gearing-up-for-flink-112">
  Gearing up for Flink 1.12
  <a class="anchor" href="#gearing-up-for-flink-112">#</a>
</h2>
<p>The Flink 1.12 release cycle has been kicked-off last week and a discussion about what features will go into the upcoming release is underway in <a href="https://lists.apache.org/thread.html/rb01160c7c9c26304a7665f9a252d4ed1583173620df307015c095fcf%40%3Cdev.flink.apache.org%3E">this @dev Mailing List thread</a>. While we wait for more of these ideas to turn into proposals and JIRA issues, here are some recent FLIPs that are already being discussed in the Flink community:</p>
<table class="table table-bordered">
  <thead>
    <tr>
      <th>FLIP</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=158866298">FLIP-130</a></td>
        <td><ul>
        <li><b>Support Python DataStream API</b></li>
        <p>Python support in Flink has so far been bounded to the Table API/SQL. These APIs are high-level and convenient, but have some limitations for more complex stream processing use cases. To expand the usability of PyFlink to a broader set of use cases, FLIP-130 proposes to support it also in the DataStream API, starting with stateless operations.</p>
      </ul>
      </td>
    </tr>
    <tr>
      <td><a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL">FLIP-132</a></td>
        <td><ul>
        <li><b>Temporal Table DDL</b></li>
        <p>Flink SQL users can't currently create temporal tables using SQL DDL, which forces them to change context frequently for use cases that require them. FLIP-132 proposes to extend the DDL syntax to support temporal tables, which in turn will allow to also bring <a href="//nightlies.apache.org/flink/flink-docs-stable/dev/table/streaming/joins.html#join-with-a-temporal-table">temporal joins</a> with changelog sources to Flink SQL.</p>
      </ul>
      </td>
    </tr>
  </tbody>
</table>
<hr>
<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>2 new PMC Members</strong> since the last update. Congratulations!</p>
<h3 id="new-pmc-members">
  New PMC Members
  <a class="anchor" href="#new-pmc-members">#</a>
</h3>
<div class="row">
  <div class="col-lg-3">
    <div class="text-center">
      <img class="img-circle" src="https://avatars0.githubusercontent.com/u/8957547?s=400&u=4560f775da9ebc5f3aa2e1563f57cdad03862ce8&v=4" width="90" height="90">
      <p><a href="https://twitter.com/PiotrNowojski">Piotr Nowojski</a></p>
    </div>
  </div>
  <div class="col-lg-3">
    <div class="text-center">
      <img class="img-circle" src="https://avatars0.githubusercontent.com/u/6239804?s=460&u=6cd81b1ab38fcc6a5736fcfa957c51093bf060e2&v=4" width="90" height="90">
      <p><a href="https://twitter.com/LiyuApache">Yu Li</a></p>
    </div>
  </div>
</div>
<hr>
<h1 id="the-bigger-picture">
  The Bigger Picture
  <a class="anchor" href="#the-bigger-picture">#</a>
</h1>
<h2 id="a-look-into-the-evolution-of-flink-releases">
  A Look Into the Evolution of Flink Releases
  <a class="anchor" href="#a-look-into-the-evolution-of-flink-releases">#</a>
</h2>
<p>It’s <a href="https://flink.apache.org/news/2020/04/01/community-update.html#a-look-into-the-flink-repository">been a while</a> since we had a look at community numbers, so this time we’d like to shed some light on the evolution of contributors and, well, work across releases. Let’s have a look at some <em>git</em> data:</p>
<div style="line-height:60%;">
    <br>
</div>
<center>
<img src="/img/blog/2020-07-29-community-update/2020-07-29_releases.png" width="600px" alt="Flink Releases"/>
</center>
<div style="line-height:60%;">
    <br>
</div>
<p>If we consider Flink 1.8 (Apr. 2019) as the baseline, the Flink community more than <strong>tripled</strong> the number of implemented and/or resolved issues in a single release with the support of an <strong>additional ~100 contributors</strong> in Flink 1.11. This is pretty impressive on its own, and even more so if you consider that Flink contributors are distributed around the globe, working across different locations and timezones!</p>
<hr>
<h2 id="first-time-contributor-guide">
  First-time Contributor Guide
  <a class="anchor" href="#first-time-contributor-guide">#</a>
</h2>
<p>Flink has an extensive guide for <a href="https://flink.apache.org/contributing/how-to-contribute.html">code and non-code contributions</a> that helps new community members navigate the project and get familiar with existing contribution guidelines. In particular for code contributions, knowing where to start can be difficult, given the sheer size of the Flink codebase and the pace of development of the project.</p>
<p>To better guide new contributors, a brief section was added to the guide on <a href="https://flink.apache.org/contributing/contribute-code.html#looking-for-what-to-contribute">how to look for what to contribute</a> and the <a href="https://issues.apache.org/jira/browse/FLINK-18704?filter=12349196"><em>starter</em> label</a> has been revived in Jira to highlight issues that are suitable for first-time contributors.</p>
<div class="alert alert-info" markdown="1">
<span class="label label-info" style="display: inline-block"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> Note </span>
As a reminder, you no longer need to ask for contributor permissions to start contributing to Flink. Once you’ve found something you’d like to work on, read the <a href="https://flink.apache.org/contributing/contribute-code.html">contribution guide</a> carefully and reach out to a Flink Committer, who will be able to help you get started.
</div>
<h2 id="replacing-charged-words-in-the-flink-repo">
  Replacing “charged” words in the Flink repo
  <a class="anchor" href="#replacing-charged-words-in-the-flink-repo">#</a>
</h2>
<p>The community is working on gradually replacing words that are outdated and carry a negative connotation in the Flink codebase, such as “master/slave” and “whitelist/blacklist”. The progress of this work can be tracked in <a href="https://issues.apache.org/jira/browse/FLINK-18209">FLINK-18209</a>.</p>
<hr>
<h1 id="upcoming-events-and-more">
  Upcoming Events (and More!)
  <a class="anchor" href="#upcoming-events-and-more">#</a>
</h1>
<p>We&rsquo;re happy to see the &ldquo;high season&rdquo; of virtual events approaching, with a lot of great conferences taking place in the coming month, as well as some meetups. Here, we highlight some of the Flink talks happening in those events, but we recommend checking out the complete event programs!</p>
<p>As usual, we also leave you with some resources to read and explore.</p>
<table class="table table-bordered">
  <thead>
    <tr>
      <th>Category</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span class="glyphicon glyphicon glyphicon-console" aria-hidden="true"></span> Events</td>
      <td><ul>
        <b>Virtual Flink Meetup (Jul. 29)</b>
        <p><a href="https://www.meetup.com/seattle-flink/events/271922632/">What’s new in Flink 1.11? + Q&A with Aljoscha Krettek</a></p>
      </ul>
      <ul>
        <b>DC Thursday (Jul. 30)</b>
        <p><a href="https://www.eventbrite.com/e/dc-thurs-apache-flink-w-stephan-ewen-tickets-112137488246?utm_campaign=Events%20%26%20Talks&utm_content=135006406&utm_medium=social&utm_source=twitter&hss_channel=tw-2581958070">Interview and Community Q&A with Stephan Ewen</a></p>
      </ul>
      <ul>
        <b>KubeCon + CloudNativeCon Europe (Aug. 17-20)</b>
        <p><a href="https://kccnceu20.sched.com/event/ZelA/stateful-serverless-and-the-elephant-in-the-room-stephan-ewen-ververica">Stateful Serverless and the Elephant in the Room</a></p>
      </ul>
      <ul>
        <b>DataEngBytes (Aug. 20-21)</b>
        <p><a href="https://dataengconf.com.au/">Change Data Capture with Flink SQL and Debezium</a></p>
        <p><a href="https://dataengconf.com.au/">Sweet Streams are Made of These: Data Driven Development with Stream Processing</a></p>
      </ul>
      <ul>
        <b>Beam Summit (Aug. 24-29)</b>
        <p><a href="https://2020.beamsummit.org/sessions/streaming-fast-slow/">Streaming, Fast and Slow</a></p>
        <p><a href="https://2020.beamsummit.org/sessions/building-stateful-streaming-pipelines/">Building Stateful Streaming Pipelines With Beam</a></p>
      </ul>
    </td>
    </tr>
    <tr>
      <td><span class="glyphicon glyphicon-fire" aria-hidden="true"></span> Blogposts</td>
        <td><ul>
        <b>Flink 1.11 Series</b>
        <li><a href="https://flink.apache.org/news/2020/07/14/application-mode.html">Application Deployment in Flink: Current State and the new Application Mode</a></li>
        <li><a href="https://flink.apache.org/2020/07/23/catalogs.html">Sharing is caring - Catalogs in Flink SQL (Tutorial)</a></li>
        <li><a href="https://flink.apache.org/2020/07/28/flink-sql-demo-building-e2e-streaming-application.html">Flink SQL Demo: Building an End-to-End Streaming Application (Tutorial)</a></li>
        <p></p>
        <b>Other</b>
        <li><a href="https://blogs.oracle.com/javamagazine/streaming-analytics-with-java-and-apache-flink?source=:em:nw:mt::RC_WWMK200429P00043:NSL400072808&elq_mid=167902&sh=162609181316181313222609291604350235&cmid=WWMK200429P00043C0004">Streaming analytics with Java and Apache Flink (Tutorial)</a></li>
        <li><a href="https://www.ververica.com/blog/flink-for-online-machine-learning-and-real-time-processing-at-weibo">Flink for online Machine Learning and real-time processing at Weibo</a></li>
        <li><a href="https://www.ververica.com/blog/data-driven-matchmaking-at-azar-with-apache-flink">Data-driven Matchmaking at Azar with Apache Flink</a></li>
      </ul>
      </td>
    </tr>
      <td><span class="glyphicon glyphicon glyphicon-certificate" aria-hidden="true"></span> Flink Packages</td>
      <td><ul><p><a href="https://flink-packages.org/">Flink Packages</a> is a website where you can explore (and contribute to) the Flink <br /> ecosystem of connectors, extensions, APIs, tools and integrations. <b>New in:</b> </p>
          <li><a href="https://flink-packages.org/packages/flink-metrics-signalfx"> SignalFx Metrics Reporter</a></li>
          <li><a href="https://flink-packages.org/packages/yauaa">Yauaa: Yet Another UserAgent Analyzer</a></li>
      </ul>
    </td>
    </tr>
  </tbody>
</table>
<hr>
<p>If you’d like to keep a closer eye on what’s happening in the community, subscribe to the Flink <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.</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/2020-07-29-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-past-month-in-flink">The Past Month in Flink</a>
      <ul>
        <li><a href="#flink-releases">Flink Releases</a>
          <ul>
            <li><a href="#flink-111">Flink 1.11</a></li>
            <li><a href="#flink-1111">Flink 1.11.1</a></li>
          </ul>
        </li>
        <li><a href="#gearing-up-for-flink-112">Gearing up for Flink 1.12</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>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#the-bigger-picture">The Bigger Picture</a>
      <ul>
        <li><a href="#a-look-into-the-evolution-of-flink-releases">A Look Into the Evolution of Flink Releases</a></li>
        <li><a href="#first-time-contributor-guide">First-time Contributor Guide</a></li>
        <li><a href="#replacing-charged-words-in-the-flink-repo">Replacing “charged” words in the Flink repo</a></li>
      </ul>
    </li>
    <li><a href="#upcoming-events-and-more">Upcoming Events (and More!)</a></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>






