
<!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/03/30/flink-community-update-april20/">

  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="While things slow down around us, the Apache Flink community is privileged to remain as active as ever. This blogpost combs through the past few months to give you an update on the state of things in Flink — from core releases to Stateful Functions; from some good old community stats to a new development blog.
And since now it&rsquo;s more important than ever to keep up the spirits, we’d like to invite you to join the Flink Forward Virtual Conference, on April 22-24 (see Upcoming Events).">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Flink Community Update - April&#39;20" />
<meta property="og:description" content="While things slow down around us, the Apache Flink community is privileged to remain as active as ever. This blogpost combs through the past few months to give you an update on the state of things in Flink — from core releases to Stateful Functions; from some good old community stats to a new development blog.
And since now it&rsquo;s more important than ever to keep up the spirits, we’d like to invite you to join the Flink Forward Virtual Conference, on April 22-24 (see Upcoming Events)." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/2020/03/30/flink-community-update-april20/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-03-30T08:00:00+00:00" />
<meta property="article:modified_time" content="2020-03-30T08:00:00+00:00" />
<title>Flink Community Update - April&#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/03/30/flink-community-update-april20/">Flink Community Update - April&#39;20</a>
    </h1>
    


  March 30, 2020 -



  Marta Paes

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



    <p><p>While things slow down around us, the Apache Flink community is privileged to remain as active as ever. This blogpost combs through the past few months to give you an update on the state of things in Flink — from core releases to Stateful Functions; from some good old community stats to a new development blog.</p>
<p>And since now it&rsquo;s more important than ever to keep up the spirits, we’d like to invite you to join the <a href="https://www.flink-forward.org/sf-2020">Flink Forward Virtual Conference</a>, on April 22-24 (see <a href="#upcoming-events">Upcoming Events</a>). Hope to see you there!</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>
<h2 id="flink-110-release">
  Flink 1.10 Release
  <a class="anchor" href="#flink-110-release">#</a>
</h2>
<p>To kick off the new year, the Flink community <a href="https://flink.apache.org/news/2020/02/11/release-1.10.0.html">released Flink 1.10</a> with the record contribution of over 200 engineers. This release introduced significant improvements to the overall performance and stability of Flink jobs, a preview of native Kubernetes integration and advances in Python support (PyFlink). Flink 1.10 also marked the completion of the <a href="https://flink.apache.org/news/2019/08/22/release-1.9.0.html#preview-of-the-new-blink-sql-query-processor">Blink integration</a>, hardening streaming SQL and bringing mature batch processing to Flink with production-ready Hive integration and TPC-DS coverage.</p>
<p>The community is now discussing the <a href="http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Releasing-Flink-1-10-1-td38689.html#a38690">release of Flink 1.10.1</a>, covering some outstanding bugs from Flink 1.10.</p>
<h2 id="stateful-functions-contribution-and-20-release">
  Stateful Functions Contribution and 2.0 Release
  <a class="anchor" href="#stateful-functions-contribution-and-20-release">#</a>
</h2>
<p>Last January, the first version of Stateful Functions (<a href="https://statefun.io/">statefun.io</a>) code was pushed to the <a href="https://github.com/apache/flink-statefun">Flink repository</a>. Stateful Functions started out as an API to build general purpose event-driven applications on Flink, taking advantage of its advanced state management mechanism to cut the “middleman” that usually handles state coordination in such applications (e.g. a database).</p>
<p>In a <a href="http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Update-on-Flink-Stateful-Functions-what-are-the-next-steps-tp38646.html">recent update</a>, some new features were announced, like multi-language support (including a Python SDK), function unit testing and Stateful Functions’ own flavor of the <a href="//nightlies.apache.org/flink/flink-docs-stable/dev/libs/state_processor_api.html">State Processor API</a>. The release cycle will be independent from core Flink releases and the Release Candidate (RC) has been created — so, <strong>you can expect Stateful Functions 2.0 to be released very soon!</strong></p>
<h2 id="building-up-to-flink-111">
  Building up to Flink 1.11
  <a class="anchor" href="#building-up-to-flink-111">#</a>
</h2>
<p>Amidst the usual outpour of discussion threads, JIRA tickets and FLIPs, the community is working full steam on bringing Flink 1.11 to life in the next few months. The feature freeze is currently scheduled for late April, so the release is expected around mid May.
The upcoming release will focus on new features and integrations that broaden the scope of Flink use cases, as well as core runtime enhancements to streamline the operations of complex deployments.</p>
<p>Some of the plans on the use case side include support for changelog streams in the Table API/SQL (<a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-105%3A&#43;Support&#43;to&#43;Interpret&#43;and&#43;Emit&#43;Changelog&#43;in&#43;Flink&#43;SQL">FLIP-105</a>), easy streaming data ingestion into Apache Hive (<a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-115%3A&#43;Filesystem&#43;connector&#43;in&#43;Table">FLIP-115</a>) and support for Pandas DataFrames in PyFlink. On the operational side, the much anticipated new Source API (<a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-27%3A&#43;Refactor&#43;Source&#43;Interface">FLIP-27</a>) will unify batch and streaming sources, and improve out-of-the-box event-time behavior; while unaligned checkpoints (<a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-76%3A&#43;Unaligned&#43;Checkpoints">FLIP-76</a>) and some changes to network memory management will allow to speed up checkpointing under backpressure.</p>
<p>Throw into the mix improvements around type systems, the WebUI, metrics reporting and supported formats, this release is bound to keep the community busy. For a complete overview of the ongoing development, check <a href="http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Features-of-Apache-Flink-1-11-td38724.html#a38793">this discussion</a> and follow the weekly updates on the Flink <a href="https://flink.apache.org/community.html#mailing-lists">@community mailing list</a>.</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>1 PMC (Project Management Committee) Member</strong> and <strong>5 new Committers</strong> since the last update (September 2019):</p>
<h3 id="new-pmc-members">
  New PMC Members
  <a class="anchor" href="#new-pmc-members">#</a>
</h3>
<pre><code>Jark Wu
</code></pre>
<h3 id="new-committers">
  New Committers
  <a class="anchor" href="#new-committers">#</a>
</h3>
<pre><code>Zili Chen, Jingsong Lee, Yu Li, Dian Fu, Zhu Zhu
</code></pre>
<p>Congratulations to all 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>
<h2 id="a-look-into-the-flink-repository">
  A Look into the Flink Repository
  <a class="anchor" href="#a-look-into-the-flink-repository">#</a>
</h2>
<p>In the <a href="https://flink.apache.org/news/2019/09/10/community-update.html">last update</a>, we shared some numbers around Flink releases and mailing list activity. This time, we’re looking into the activity in the Flink repository and how it’s evolving.</p>
<center>
<img src="/img/blog/2020-03-30-flink-community-update/2020-03-30-flink-community-update_1.png" width="725px" alt="GitHub 1"/>
</center>
<p>There is a clear upward trend in the number of contributions to the repository, based on the number of commits. This reflects the <strong>fast pace of development</strong> the project is experiencing and also the <strong>successful integration of the China-based Flink contributors</strong> started early last year. To complement these observations, the repository registered a <strong>1.5x increase in the number of individual contributors in 2019</strong>, compared to the previous year.</p>
<p>But did this increase in capacity produce any other measurable benefits?</p>
<center>
<img src="/img/blog/2020-03-30-flink-community-update/2020-03-30-flink-community-update_2.png" width="725px" alt="GitHub 2"/>
</center>
<p>If we look at the average time of Pull Request (PR) “resolution”, it seems like it did: <strong>the average time it takes to close a PR these days has been steadily decreasing</strong> since last year, sitting between 5-6 days for the past few months.</p>
<p>These are great indicators of the health of Flink as an open source project!</p>
<h2 id="flink-community-packages">
  Flink Community Packages
  <a class="anchor" href="#flink-community-packages">#</a>
</h2>
<p>If you missed the launch of <a href="http://flink-packages.org/">flink-packages.org</a>, here’s a reminder! Ververica has <a href="https://www.ververica.com/blog/announcing-flink-community-packages">created (and open sourced)</a> a website that showcases the work of the community to push forward the ecosystem surrounding Flink. There, you can explore existing packages (like the Pravega and Pulsar Flink connectors, or the Flink Kubernetes operators developed by Google and Lyft) and also submit your own contributions to the ecosystem.</p>
<h2 id="flink-engine-room">
  Flink &ldquo;Engine Room&rdquo;
  <a class="anchor" href="#flink-engine-room">#</a>
</h2>
<p>The community has recently launched the <a href="https://cwiki.apache.org/confluence/pages/viewrecentblogposts.action?key=FLINK">“Engine Room”</a>, a dedicated space in Flink’s Wiki for knowledge sharing between contributors. The goal of this initiative is to make ongoing development on Flink internals more transparent across different work streams, and also to help new contributors get on board with best practices. The first blogpost is already up and sheds light on the <a href="https://cwiki.apache.org/confluence/display/FLINK/2020/03/22/Migrating&#43;Flink%27s&#43;CI&#43;Infrastructure&#43;from&#43;Travis&#43;CI&#43;to&#43;Azure&#43;Pipelines">migration of Flink’s CI infrastructure from Travis to Azure Pipelines</a>.</p>
<h1 id="upcoming-events">
  Upcoming Events
  <a class="anchor" href="#upcoming-events">#</a>
</h1>
<h2 id="flink-forward-virtual-conference">
  Flink Forward Virtual Conference
  <a class="anchor" href="#flink-forward-virtual-conference">#</a>
</h2>
<p>The organization of Flink Forward had to make the hard decision of cancelling this year’s event in San Francisco. But all is not lost! <strong>Flink Forward SF will be held online on April 22-24 and you can register (for free)</strong> <a href="https://www.flink-forward.org/sf-2020">here</a>. Join the community for interactive talks and Q&amp;A sessions with core Flink contributors and companies like Splunk, Lyft, Netflix or Google.</p>
<h2 id="others">
  Others
  <a class="anchor" href="#others">#</a>
</h2>
<p>Events across the globe have come to a halt due to the growing concerns around COVID-19, so this time we’ll leave you with some interesting content to read instead. In addition to this written content, you can also recap last year’s sessions from <a href="https://www.youtube.com/playlist?list=PLDX4T_cnKjD207Aa8b5CsZjc7Z_KRezGz">Flink Forward Berlin</a> and <a href="https://www.youtube.com/playlist?list=PLDX4T_cnKjD3ANoNinSx3Au-poZTHvbF5">Flink Forward China</a>!</p>
<table class="table table-bordered">
  <thead>
    <tr>
      <th>Type</th>
      <th>Links</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span class="glyphicon glyphicon glyphicon-bookmark" aria-hidden="true"></span> Blogposts</td>
      <td><ul>
		  <li><a href="https://medium.com/bird-engineering/replayable-process-functions-in-flink-time-ordering-and-timers-28007a0210e1">Replayable Process Functions: Time, Ordering, and Timers @Bird</a></li>
		  <li><a href="https://engineering.salesforce.com/application-log-intelligence-performance-insights-at-salesforce-using-flink-92955f30573f">Application Log Intelligence & Performance Insights at Salesforce Using Flink @Salesforce</a></li>
		  </ul>
		  <ul>
		  <li><a href="https://flink.apache.org/news/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink.html">State Unlocked: Interacting with State in Apache Flink</a></li>
		  <li><a href="https://flink.apache.org/news/2020/01/15/demo-fraud-detection.html">Advanced Flink Application Patterns Vol.1: Case Study of a Fraud Detection System</a></li>
		  <li><a href="https://flink.apache.org/news/2020/03/24/demo-fraud-detection-2.html">Advanced Flink Application Patterns Vol.2: Dynamic Updates of Application Logic</a></li>
		  <li><a href="https://flink.apache.org/ecosystem/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink.html">Apache Beam: How Beam Runs on Top of Flink</a></li>
		  <li><a href="https://flink.apache.org/features/2020/03/27/flink-for-data-warehouse.html">Flink as Unified Engine for Modern Data Warehousing: Production-Ready Hive Integration</a></li>
		</ul>
	  </td>
    </tr>
    <tr>
      <td><span class="glyphicon glyphicon-console" aria-hidden="true"></span> Tutorials</td>
      <td><ul>
      	  <li><a href="https://medium.com/@zjffdu/flink-on-zeppelin-part-3-streaming-5fca1e16754">Flink on Zeppelin — (Part 3). Streaming</a></li>
		  <li><a href="https://aws.amazon.com/blogs/big-data/streaming-etl-with-apache-flink-and-amazon-kinesis-data-analytics">Streaming ETL with Apache Flink and Amazon Kinesis Data Analytics</a></li>
		  <li><a href="https://flink.apache.org/news/2020/02/20/ddl.html">No Java Required: Configuring Sources and Sinks in SQL</a></li>
		  <li><a href="https://flink.apache.org/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html">A Guide for Unit Testing in Apache Flink</a></li>
		  </ul>
	  </td>
    </tr>
  </tbody>
</table>
<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-03-30-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="#flink-110-release">Flink 1.10 Release</a></li>
        <li><a href="#stateful-functions-contribution-and-20-release">Stateful Functions Contribution and 2.0 Release</a></li>
        <li><a href="#building-up-to-flink-111">Building up to Flink 1.11</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>
      <ul>
        <li><a href="#a-look-into-the-flink-repository">A Look into the Flink Repository</a></li>
        <li><a href="#flink-community-packages">Flink Community Packages</a></li>
        <li><a href="#flink-engine-room">Flink &ldquo;Engine Room&rdquo;</a></li>
      </ul>
    </li>
    <li><a href="#upcoming-events">Upcoming Events</a>
      <ul>
        <li><a href="#flink-forward-virtual-conference">Flink Forward Virtual Conference</a></li>
        <li><a href="#others">Others</a></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>






