<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Apache Flink: Apache Flink in 2017: Year in Review</title>
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="/css/flink.css">
    <link rel="stylesheet" href="/css/syntax.css">

    <!-- Blog RSS feed -->
    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
    <script src="/js/jquery.min.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>  
    

    <!-- Main content. -->
    <div class="container">
    <div class="row">

      
     <div id="sidebar" class="col-sm-3">
        

<!-- Top navbar. -->
    <nav class="navbar navbar-default">
        <!-- The logo. -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <div class="navbar-logo">
            <a href="/">
              <img alt="Apache Flink" src="/img/flink-header-logo.svg" width="147px" height="73px">
            </a>
          </div>
        </div><!-- /.navbar-header -->

        <!-- The navigation links. -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav navbar-main">

            <!-- First menu section explains visitors what Flink is -->

            <!-- What is Stream Processing? -->
            <!--
            <li><a href="/streamprocessing1.html">What is Stream Processing?</a></li>
            -->

            <!-- What is Flink? -->
            <li><a href="/flink-architecture.html">What is Apache Flink?</a></li>

            

            <!-- What is Stateful Functions? -->

            <li><a href="/stateful-functions.html">What is Stateful Functions?</a></li>

            <!-- Use cases -->
            <li><a href="/usecases.html">Use Cases</a></li>

            <!-- Powered by -->
            <li><a href="/poweredby.html">Powered By</a></li>


            &nbsp;
            <!-- Second menu section aims to support Flink users -->

            <!-- Downloads -->
            <li><a href="/downloads.html">Downloads</a></li>

            <!-- Getting Started -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Getting Started<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11/getting-started/index.html" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/getting-started/project-setup.html" target="_blank">With Flink Stateful Functions <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="/training.html">Training Course</a></li>
              </ul>
            </li>

            <!-- Documentation -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11" target="_blank">Flink 1.11 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-master" target="_blank">Flink Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1" target="_blank">Flink Stateful Functions 2.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
              </ul>
            </li>

            <!-- getting help -->
            <li><a href="/gettinghelp.html">Getting Help</a></li>

            <!-- Blog -->
            <li class="active"><a href="/blog/"><b>Flink Blog</b></a></li>


            <!-- Flink-packages -->
            <li>
              <a href="https://flink-packages.org" target="_blank">flink-packages.org <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>
            &nbsp;

            <!-- Third menu section aim to support community and contributors -->

            <!-- Community -->
            <li><a href="/community.html">Community &amp; Project Info</a></li>

            <!-- Roadmap -->
            <li><a href="/roadmap.html">Roadmap</a></li>

            <!-- Contribute -->
            <li><a href="/contributing/how-to-contribute.html">How to Contribute</a></li>
            

            <!-- GitHub -->
            <li>
              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>

            &nbsp;

            <!-- Language Switcher -->
            <li>
              
                
                  <!-- link to the Chinese home page when current is blog page -->
                  <a href="/zh">中文版</a>
                
              
            </li>

          </ul>

          <ul class="nav navbar-nav navbar-bottom">
          <hr />

            <!-- Twitter -->
            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <!-- Visualizer -->
            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

          <hr />

            <li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <li>
              <style>
                .smalllinks:link {
                  display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
                }
              </style>

              <a class="smalllinks" href="https://www.apache.org/licenses/" target="_blank">License</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/security/" target="_blank">Security</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
            </li>

          </ul>
        </div><!-- /.navbar-collapse -->
    </nav>

      </div>
      <div class="col-sm-9">
      <div class="row-fluid">
  <div class="col-sm-12">
    <div class="row">
      <h1>Apache Flink in 2017: Year in Review</h1>
      <p><i></i></p>

      <article>
        <p>21 Dec 2017 Chris Ward (<a href="https://twitter.com/chrischinch">@chrischinch</a>) &amp; Mike Winters (<a href="https://twitter.com/wints">@wints</a>)</p>

<p>2017 was another exciting year for the Apache Flink® community, with 3 major version releases (<a href="http://flink.apache.org/news/2017/02/06/release-1.2.0.html">Flink 1.2.0 in February</a>, <a href="http://flink.apache.org/news/2017/06/01/release-1.3.0.html">Flink 1.3.0 in June</a>, and <a href="http://flink.apache.org/news/2017/12/12/release-1.4.0.html">Flink 1.4.0 in December</a>) and the first-ever <a href="https://sf-2017.flink-forward.org/">Flink Forward in San Francisco</a>, giving Flink community members in another corner of the globe an opportunity to connect. Users shared details about their innovative production deployments, redefining what is possible with a modern stream processing framework like Flink.</p>

<p>In this post, we’ll look back on the project’s progress over the course of 2017, and we’ll also preview what 2018 has in store.</p>

<div class="page-toc">
<ul id="markdown-toc">
  <li><a href="#community-growth" id="markdown-toc-community-growth">Community Growth</a>    <ul>
      <li><a href="#github" id="markdown-toc-github">Github</a></li>
      <li><a href="#meetups" id="markdown-toc-meetups">Meetups</a></li>
    </ul>
  </li>
  <li><a href="#flink-forward-2017" id="markdown-toc-flink-forward-2017">Flink Forward 2017</a></li>
  <li><a href="#features-and-ecosystem" id="markdown-toc-features-and-ecosystem">Features and Ecosystem</a>    <ul>
      <li><a href="#flink-ecosystem-growth" id="markdown-toc-flink-ecosystem-growth">Flink Ecosystem Growth</a></li>
      <li><a href="#feature-timeline-in-2017" id="markdown-toc-feature-timeline-in-2017">Feature Timeline in 2017</a></li>
    </ul>
  </li>
  <li><a href="#looking-ahead-to-2018" id="markdown-toc-looking-ahead-to-2018">Looking ahead to 2018</a></li>
</ul>

</div>

<h2 id="community-growth">Community Growth</h2>

<h3 id="github">Github</h3>

<p>First, here’s a summary of community statistics from <a href="https://github.com/apache/flink">GitHub</a>. At the time of writing:</p>

<ul>
  <li><strong>Contributors</strong> have increased from 258 in December 2016 to 352 in December 2017 (up <strong>36%</strong>)</li>
  <li><strong>Stars</strong> have increased from 1830 in December 2016 to 3036 in December 2017 (up <strong>65%</strong>)</li>
  <li><strong>Forks</strong> have increased from 1255 in December 2016 to 2070 in December 2017 (up <strong>65%</strong>)</li>
</ul>

<p>The community also welcomed <strong>10 new committers in 2017</strong>: Kostas Kloudas, Jark Wu, Stefan Richter, Kurt Young, Theodore Vasiloudis, Xiaogang Shi, Dawid Wysakowicz, Shaoxuan Wang, Jincheng Sun and Haohui Mai.</p>

<p>We also welcomed <strong>3 new members to the <a href="http://www.apache.org/foundation/governance/pmcs.html">project management committee (PMC)</a></strong>: Greg Hogan, Tzu-Li (Gordon) Tai and Chesnay Schepler.</p>

<p><img src="/img/blog/github-stats-2017.png" alt="Apache Flink GitHub Stats" /></p>

<p>Next, let’s take a look at a few other project stats, starting with number of commits. If we run:</p>

<div class="highlight"><pre><code class="language-bash">git log --pretty<span class="o">=</span>oneline --after<span class="o">=</span>12/31/2016 <span class="p">|</span> wc -l</code></pre></div>

<p>Inside the Flink repository, we’ll see a total of <strong>2316</strong> commits so far in 2017, bringing the all-time total commits to <strong>12,532</strong>.</p>

<p>Now, let’s go a bit deeper, here are instructions to take a look at this data yourself.</p>

<p>Download and install gitstats from the <a href="http://gitstats.sourceforge.net/">project homepage</a>, then clone the Apache Flink git repository:</p>

<div class="highlight"><pre><code class="language-bash">git clone git@github.com:apache/flink.git</code></pre></div>

<p>Generate the statistics</p>

<div class="highlight"><pre><code class="language-bash">gitstats flink/ flink-stats/</code></pre></div>

<p>View all the statistics as an HTML page using your default browser:</p>

<div class="highlight"><pre><code class="language-bash">open flink-stats/index.html</code></pre></div>

<p>Flink surpassed 1 million lines of code in 2016, and that trend continued in 2017 with the code base now clocking in at <strong>1,257,949</strong> lines.</p>

<p><img src="/img/blog/flink-lines-of-code-2017.png" alt="Flink Total Lines of Code" /></p>

<p>Monday remains the day of the week with the most commits over the project’s history, but Wednesday is catching up:</p>

<p><img src="/img/blog/flink-dow-2017.png" alt="Flink Commits by Day of Week" /></p>

<p>5 pm remains the preferred commit time, closely followed by 4 pm:</p>

<p><img src="/img/blog/flink-hod-2017.png" alt="Flink Commits by Hour of Day" /></p>

<h3 id="meetups">Meetups</h3>

<p><a href="https://www.meetup.com/topics/apache-flink/">Apache Flink Meetup membership</a> grew by <strong>20%</strong> this year to a total of <strong>19,767</strong> members at <strong>39</strong> meetups listing Flink as a topic. With meetups on five continents, the Flink community is proud to be truly global.</p>

<p><img src="/img/blog/flink-meetups-dec2017.png" alt="Apache Flink Meetup Map" /></p>

<h2 id="flink-forward-2017">Flink Forward 2017</h2>

<p>2017 was the first year we ran a Flink Forward conference in both <a href="https://berlin-2017.flink-forward.org">Berlin</a> (September 11-13) and <a href="https://sf-2017.flink-forward.org">San Francisco</a> (April 10-11), and over 350 members of our community attended each event for speaker sessions, training, and discussion about Flink.</p>

<p><a href="https://www.slideshare.net/FlinkForward/presentations">Slides</a> and <a href="https://www.youtube.com/channel/UCY8_lgiZLZErZPF47a2hXMA">videos</a> are available for all speaker sessions, and if you’re interested in learning more about how organizations use Flink in production, we encourage you to browse and watch a couple.</p>

<p>For 2018, Flink Forward will be back in <a href="https://flink-forward.org/">September in Berlin</a>, and in <a href="https://sf-2018.flink-forward.org/">April in San Francisco</a>.</p>

<p><img src="/img/blog/speaker-logos-ff2017.png" alt="Flink Forward Speakers" /></p>

<h2 id="features-and-ecosystem">Features and Ecosystem</h2>

<h3 id="flink-ecosystem-growth">Flink Ecosystem Growth</h3>

<p>Flink was added to a selection of distributions and integrations during 2017, making it easier for a wider user base to get started with Flink:</p>

<ul>
  <li><a href="https://hub.docker.com/r/_/flink/">Official Docker image</a></li>
  <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/mesos.html">Official DC/OS and Mesos support</a></li>
  <li><a href="https://data-artisans.com/blog/dellemc-launches-open-source-pravega-complete-apache-flink-connector">A Flink connector</a> for <a href="http://pravega.io">Pravega</a>, Dell/EMC’s streaming storage system.</li>
  <li>Uber announced AthenaX, a streaming SQL platform <a href="https://data-artisans.com/blog/uber-introduces-open-source-athenax-streaming-sql-platform-apache-flink">powered by Apache Flink</a>.</li>
  <li>dataArtisans announced an early access program of a SaaS product based on Apache Flink, <a href="https://data-artisans.com/blog/da-platform-2-stateful-stream-processing-with-apache-flink-made-easier">dA Platform 2</a>.</li>
</ul>

<h3 id="feature-timeline-in-2017">Feature Timeline in 2017</h3>

<p>Just in time for the end of the year, our 1.4 release <a href="http://flink.apache.org/news/2017/12/12/release-1.4.0.html">read the full release announcement</a> landed in mid-December culminating 5 months of work and the resolution of more than 900 issues. This is the fifth major release in the 1.x.y series.</p>

<p>Here’s a selection of major features added to Flink over the course of 2017:</p>

<p><img src="/img/blog/flink-releases-2017.png" alt="Flink Release Timeline 2017" /></p>

<p>If you take a look at <a href="https://issues.apache.org/jira/browse/FLINK-5016?jql=project%20%3D%20FLINK%20AND%20issuetype%20in%20(Bug%2C%20Improvement%2C%20%22New%20Feature%22)%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20resolved%20%3E%3D%202017-01-01%20AND%20resolved%20%3C%3D%202017-12-31%20ORDER%20BY%20resolved%20ASC">the resolved issues and enhancements for 2017 on Jira</a> you can see that the community resolved over 1,831 issues and feature additions.</p>

<p><a href="/news/2016/12/19/2016-year-in-review.html#looking-ahead-to-2017">Regarding roadmap commitments from 2016</a>, there is mixed news, with some items a part of current releases, others scheduled for upcoming releases and some that remain under discussion.</p>

<h2 id="looking-ahead-to-2018">Looking ahead to 2018</h2>

<p>A good source of information about the Flink community’s roadmap is the list of <a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals">Flink Improvement Proposals (FLIPs)</a> in the project wiki. Below, we’ll highlight a selection of FLIPs accepted by the community as well as some that are still under discussion.</p>

<p>Work is already underway on a number of these features, and some will be included in Flink 1.5 at the beginning of 2018.</p>

<ul>
  <li><strong>Improved BLOB storage architecture</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-19:+Improved+BLOB+storage+architecture">FLIP-19</a> to consolidate API usage and improve concurrency.</li>
  <li><strong>Integration of SQL and CEP</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-20:+Integration+of+SQL+and+CEP">FLIP-20</a> to allow developers to  create complex event processing (CEP) patterns using SQL statements.</li>
  <li><strong>Unified checkpoints and savepoints</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-10:+Unify+Checkpoints+and+Savepoints">FLIP-10</a>, to allow savepoints to be triggered automatically–important for program updates for the sake of error handling because savepoints allow the user to modify both the job and Flink version whereas checkpoints can only be recovered with the same job.</li>
  <li><strong>An improved Flink deployment and process model</strong>, as described in <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65147077">FLIP-6</a>, to allow for better integration with Flink and cluster managers and deployment technologies such as Mesos, Docker, and Kubernetes.</li>
  <li><strong>Fine-grained recovery from task failures</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-1+:+Fine+Grained+Recovery+from+Task+Failures">FLIP-1</a> to improve recovery efficiency and only re-execute failed tasks, reducing the amount of state that Flink needs to transfer on recovery.</li>
  <li><strong>An SQL Client</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-24+-+SQL+Client">FLIP-24</a> to add a service and a client to execute SQL queries against batch and streaming tables.</li>
  <li><strong>Serving of machine learning models</strong>, as described in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-23+-+Model+Serving">FLIP-23</a> to add a library that allows users to apply offline-trained machine learning models to data streams.</li>
</ul>

<p>If you’re interested in getting involved with Flink, we encourage you to take a look at the FLIPs and to join the discussion via the <a href="http://flink.apache.org/community.html#mailing-lists">Flink mailing lists</a>.</p>

<p>Lastly, we’d like to extend a sincere thank you to all the Flink community for making 2017 a great year!</p>

      </article>
    </div>

    <div class="row">
      <div id="disqus_thread"></div>
      <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'stratosphere-eu'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
             (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
      </script>
    </div>
  </div>
</div>
      </div>
    </div>

    <hr />

    <div class="row">
      <div class="footer text-center col-sm-12">
        <p>Copyright © 2014-2019 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
        <p>Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
      </div>
    </div>
    </div><!-- /.container -->

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.0/jquery.matchHeight-min.js"></script>
    <script src="/js/codetabs.js"></script>
    <script src="/js/stickysidebar.js"></script>

    <!-- Google Analytics -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-52545728-1', 'auto');
      ga('send', 'pageview');
    </script>
  </body>
</html>
