This is an automated email from the ASF dual-hosted git repository.

chesnay pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6dbfb0e  Rebuild website
6dbfb0e is described below

commit 6dbfb0e75b4baa93ccdee83ce6e6bd01c581fb5d
Author: Chesnay Schepler <[email protected]>
AuthorDate: Wed Nov 3 12:37:47 2021 +0100

    Rebuild website
---
 content/2021/11/03/flink-backward.html             | 357 +++++++++++++++++++++
 content/blog/feed.xml                              | 206 ++++++------
 content/blog/index.html                            |  38 ++-
 content/blog/page10/index.html                     |  38 ++-
 content/blog/page11/index.html                     |  38 ++-
 content/blog/page12/index.html                     |  38 ++-
 content/blog/page13/index.html                     |  40 ++-
 content/blog/page14/index.html                     |  40 ++-
 content/blog/page15/index.html                     |  40 ++-
 content/blog/page16/index.html                     |  40 ++-
 content/blog/page17/index.html                     |  25 ++
 content/blog/page2/index.html                      |  40 ++-
 content/blog/page3/index.html                      |  38 ++-
 content/blog/page4/index.html                      |  38 ++-
 content/blog/page5/index.html                      |  41 ++-
 content/blog/page6/index.html                      |  39 ++-
 content/blog/page7/index.html                      |  36 ++-
 content/blog/page8/index.html                      |  36 ++-
 content/blog/page9/index.html                      |  36 ++-
 .../2021-11-03-flink-backward/1.14-weather.png     | Bin 0 -> 174546 bytes
 content/index.html                                 |   8 +-
 content/zh/index.html                              |   8 +-
 22 files changed, 873 insertions(+), 347 deletions(-)

diff --git a/content/2021/11/03/flink-backward.html 
b/content/2021/11/03/flink-backward.html
new file mode 100644
index 0000000..79a1130
--- /dev/null
+++ b/content/2021/11/03/flink-backward.html
@@ -0,0 +1,357 @@
+<!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: Flink Backward - The Apache Flink 
Retrospective</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="/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>
+
+            
+            <ul class="nav navbar-nav navbar-subnav">
+              <li >
+                  <a href="/flink-architecture.html">Architecture</a>
+              </li>
+              <li >
+                  <a href="/flink-applications.html">Applications</a>
+              </li>
+              <li >
+                  <a href="/flink-operations.html">Operations</a>
+              </li>
+            </ul>
+            
+
+            <!-- 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://nightlies.apache.org/flink/flink-docs-release-1.14//docs/try-flink/local_installation/";
 target="_blank">With Flink <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+                <li><a 
href="https://nightlies.apache.org/flink/flink-statefun-docs-release-3.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://nightlies.apache.org/flink/flink-docs-release-1.14"; 
target="_blank">Flink 1.14 (Latest stable release) <small><span 
class="glyphicon glyphicon-new-window"></span></small></a></li>
+                <li><a 
href="https://nightlies.apache.org/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://nightlies.apache.org/flink/flink-statefun-docs-release-3.1"; 
target="_blank">Flink Stateful Functions 3.1 (Latest stable release) 
<small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+                <li><a 
href="https://nightlies.apache.org/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><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>
+              
+                
+                  <a href="/zh/2021/11/03/flink-backward.html">中文版</a>
+                
+              
+            </li>
+
+          </ul>
+
+          <style>
+            .smalllinks:link {
+              display: inline-block !important; background: none; padding-top: 
0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
+            }
+          </style>
+
+          <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>
+
+            <li >
+                  <a href="/security.html">Flink Security</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>
+
+              <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>Flink Backward - The Apache Flink Retrospective</h1>
+      <p><i></i></p>
+
+      <article>
+        <p>03 Nov 2021 Johannes Moser </p>
+
+<p>It has now been a month since the community released <a 
href="https://flink.apache.org/downloads.html#apache-flink-1140";>Apache Flink 
1.14</a> into the wild. We had a comprehensive look at the enhancements, 
additions, and fixups in the release announcement blog post, and now we will 
look at the development cycle from a different angle. Based on feedback 
collected from contributors involved in this release, we will explore the 
experiences and processes behind it all.</p>
+
+<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#a-retrospective-on-the-release-cycle" 
id="markdown-toc-a-retrospective-on-the-release-cycle">A retrospective on the 
release cycle</a>    <ul>
+      <li><a href="#problems-faced" id="markdown-toc-problems-faced">Problems 
faced</a></li>
+      <li><a href="#things-enjoyed" id="markdown-toc-things-enjoyed">Things 
enjoyed</a></li>
+    </ul>
+  </li>
+  <li><a href="#what-we-want-to-achieve-through-process-changes" 
id="markdown-toc-what-we-want-to-achieve-through-process-changes">What we want 
to achieve through process changes</a>    <ul>
+      <li><a href="#transparency---let-the-community-participate" 
id="markdown-toc-transparency---let-the-community-participate">Transparency - 
let the community participate</a></li>
+      <li><a href="#stability---reduce-building-and-testing-pain" 
id="markdown-toc-stability---reduce-building-and-testing-pain">Stability - 
reduce building and testing pain</a></li>
+      <li><a href="#documentation---make-it-user-friendly" 
id="markdown-toc-documentation---make-it-user-friendly">Documentation - make it 
user-friendly</a></li>
+      <li><a href="#api-consistency---a-timeless-joyful-experience" 
id="markdown-toc-api-consistency---a-timeless-joyful-experience">API 
consistency - a timeless, joyful experience</a></li>
+    </ul>
+  </li>
+  <li><a href="#some-noteworthy-items" 
id="markdown-toc-some-noteworthy-items">Some noteworthy items</a></li>
+</ul>
+
+</div>
+
+<h1 id="a-retrospective-on-the-release-cycle">A retrospective on the release 
cycle</h1>
+
+<p>From the team, we collected emotions that have been attributed to points in 
time of the 1.14 release cycle:</p>
+
+<center>
+<img src="/img/blog/2021-11-03-flink-backward/1.14-weather.png" width="70%" />
+</center>
+
+<p>The overall sentiment seems to be quite good. A ship crushed a robot two 
times, someone felt sick towards the end, an octopus causing negative emotions 
appeared in June…</p>
+
+<p>We looked at the origin of these emotions and analyzed what went well and 
what could be improved. We also incorporated some feedback gathered from the 
community.</p>
+
+<h2 id="problems-faced">Problems faced</h2>
+
+<p>No release is perfect, and the community is constantly looking to 
improve.</p>
+
+<p>Apache Flink has active contributors from around the globe, many of whom do 
not speak English as a first language. The community is still ironing out 
processes for delivering high-quality documentation and blog posts from a 
content perspective. It is a work in progress but we have contributors focusing 
on this component.</p>
+
+<p>Each Flink release is built with the help of hundreds of contributors, each 
working on different parts of the project. Changes to one module may affect 
others in ways that are not always obvious. To maintain quality, the community 
supports an expansive test suite. Invariably, some tests are found to be flaky. 
Whenever we discover a test issue, the community opens a blocker issue that we 
must resolve before the next release. In practice, this leads to contributors 
triaging most test in [...]
+
+<p>Finally, the community pushed the planned feature freeze for 1.14 by two 
weeks. Two weeks is an improvement from previous release cycles, but we hope to 
continue improving this metric for 1.15.</p>
+
+<h2 id="things-enjoyed">Things enjoyed</h2>
+
+<p>The implementation of some features, such as <a 
href="https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/memory/network_mem_tuning/#the-buffer-debloating-mechanism";>buffer
 debloating</a> and <a 
href="https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/finegrained_resource/";>fine-grained
 resource management</a>, went smoothly. Though a few issues are now popping up 
as people begin using them in production, it is satisfying to see an engine 
[...]
+
+<p>We also said goodbye to some components, the old table planner and 
integrated Mesos support. As any developer will tell you, there’s nothing 
better than deleting old code and reducing complexity.</p>
+
+<h1 id="what-we-want-to-achieve-through-process-changes">What we want to 
achieve through process changes</h1>
+
+<h2 id="transparency---let-the-community-participate">Transparency - let the 
community participate</h2>
+
+<p>When approaching a release, usually a couple of weeks after the previous 
release has been done, we set up bi-weekly meetings for the community to 
discuss any issues regarding the release. The usefulness of those meetings 
varied a lot, and so we started to <a 
href="https://cwiki.apache.org/confluence/display/FLINK/1.14+Release";>track the 
efforts</a> in the Apache Flink Confluence wiki.</p>
+
+<p>We came up with a system to label the current states of each feature: 
“independent”, “won’t make it”, “very unlikely”, “will make it”, “done”, and 
“done done”. We introduced the “done done” state since we lacked a shared 
understanding of the definition of done. To qualify for “done done”, the 
feature is manually tested by someone not involved in the implementation. 
Additionally, there must exist comprehensive documentation that enables users 
to use the feature.</p>
+
+<p>After each meeting, we provided updates on the mailing list and created a 
corresponding burn-down chart. Those efforts have well been received by our 
contributors, although they might still require some improvements.</p>
+
+<p>The meeting used to only be for those driving the primary efforts, but we 
opened it up to the whole community for this release. While nobody ended up 
joining, we will continue to make the meetings open to everyone.</p>
+
+<h2 id="stability---reduce-building-and-testing-pain">Stability - reduce 
building and testing pain</h2>
+
+<p>At one point, as we were coming close to the feature freeze, the stability 
of the master branch became quite unstable. Although we have encountered this 
issue in the past, building and testing Flink under such conditions was not 
ideal.</p>
+
+<p>As a result, we focused on reducing stability issues, and the release 
managers have tried to organize and manage this effort. In future development 
cycles, the whole community needs to focus on the stability of the master 
branch. There are already improvements in the making, and they will hopefully 
enhance the experience of contributing significantly.</p>
+
+<h2 id="documentation---make-it-user-friendly">Documentation - make it 
user-friendly</h2>
+
+<p>Coming back to Apache traditions, most of the documentation (if any) was 
still being pushed after the feature freeze. As mentioned before, documentation 
is required to achieve the level of “done done”. Going forward, we will keep 
more of an eye on pushing documentation earlier in the development process. 
Apache Flink is an amazing piece of software that can solve so many problems, 
but we can do so much more in improving the user experience and introducing it 
to a wider audience.</p>
+
+<h2 id="api-consistency---a-timeless-joyful-experience">API consistency - a 
timeless, joyful experience</h2>
+
+<p>The issue of API consistency was not caused by the 1.14 release, but popped 
up during the development cycle nevertheless, including a bigger discussion on 
the mailing list. While we tried to be transparent about the <a 
href="https://cwiki.apache.org/confluence/display/FLINK/Stability+Annotations";>stability
 guarantees of an API</a> (there are no guarantees across major versions), this 
was not made very clear or easy to find. Since many users rely on 
PublicEvolving APIs (due to a lack o [...]
+
+<p>Moving forward, we will document more clearly what the guarantees are and 
introduce a process for promoting PublicEvolving APIs. This might involve 
generating a report on any removed/modified PublicEvolving APIs during the 
release cycle so that downstream projects can prepare for the changes.</p>
+
+<h1 id="some-noteworthy-items">Some noteworthy items</h1>
+
+<p>The first iteration for the buffer debloat feature was done in a 
Hackathon.</p>
+
+<p>Our <a 
href="https://cwiki.apache.org/confluence/display/FLINK/1.14+Release";>Apache 
Flink 1.14 Release wiki page</a> has 167 historic versions. For comparison, <a 
href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-147%3A+Support+Checkpoints+After+Tasks+Finished";>FLIP
 147</a> (one of the most active FLIPs) has just 76.</p>
+
+<p>With <a 
href="https://issues.apache.org/jira/browse/FLINK-2491";>FLINK-2491</a>, we 
closed the third most watched issue in the Apache Flink Jira. This makes sense 
since FLINK-2491 was created 6 years ago (August 6, 2015). The second oldest 
issue was created in 2017.</p>
+
+<p>:heart:</p>
+
+<p>An open source community is more than just working on software. Apache 
Flink is the perfect example of software that is collaborated on in all parts 
of the world. The active mailing list, the discussions on FLIPs, and the 
interactions on Jira tickets all document how people work together to build 
something great. We should never forget that.</p>
+
+<p>In the meantime, the community is already working towards Apache Flink 
1.15. If you would like to become a contributor, please reach out via the <a 
href="https://flink.apache.org/community.html#mailing-lists";>dev mailing 
list</a>.  We are happy to help you find a ticket to get started on.</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-2021 <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="/js/jquery.matchHeight-min.js"></script>
+    <script src="/js/bootstrap.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>
diff --git a/content/blog/feed.xml b/content/blog/feed.xml
index 469cafe..6934262 100644
--- a/content/blog/feed.xml
+++ b/content/blog/feed.xml
@@ -7,6 +7,104 @@
 <atom:link href="https://flink.apache.org/blog/feed.xml"; rel="self" 
type="application/rss+xml" />
 
 <item>
+<title>Flink Backward - The Apache Flink Retrospective</title>
+<description>&lt;p&gt;It has now been a month since the community released 
&lt;a 
href=&quot;https://flink.apache.org/downloads.html#apache-flink-1140&quot;&gt;Apache
 Flink 1.14&lt;/a&gt; into the wild. We had a comprehensive look at the 
enhancements, additions, and fixups in the release announcement blog post, and 
now we will look at the development cycle from a different angle. Based on 
feedback collected from contributors involved in this release, we will explore 
the experiences and pr [...]
+
+&lt;div class=&quot;page-toc&quot;&gt;
+&lt;ul id=&quot;markdown-toc&quot;&gt;
+  &lt;li&gt;&lt;a href=&quot;#a-retrospective-on-the-release-cycle&quot; 
id=&quot;markdown-toc-a-retrospective-on-the-release-cycle&quot;&gt;A 
retrospective on the release cycle&lt;/a&gt;    &lt;ul&gt;
+      &lt;li&gt;&lt;a href=&quot;#problems-faced&quot; 
id=&quot;markdown-toc-problems-faced&quot;&gt;Problems 
faced&lt;/a&gt;&lt;/li&gt;
+      &lt;li&gt;&lt;a href=&quot;#things-enjoyed&quot; 
id=&quot;markdown-toc-things-enjoyed&quot;&gt;Things 
enjoyed&lt;/a&gt;&lt;/li&gt;
+    &lt;/ul&gt;
+  &lt;/li&gt;
+  &lt;li&gt;&lt;a 
href=&quot;#what-we-want-to-achieve-through-process-changes&quot; 
id=&quot;markdown-toc-what-we-want-to-achieve-through-process-changes&quot;&gt;What
 we want to achieve through process changes&lt;/a&gt;    &lt;ul&gt;
+      &lt;li&gt;&lt;a 
href=&quot;#transparency---let-the-community-participate&quot; 
id=&quot;markdown-toc-transparency---let-the-community-participate&quot;&gt;Transparency
 - let the community participate&lt;/a&gt;&lt;/li&gt;
+      &lt;li&gt;&lt;a 
href=&quot;#stability---reduce-building-and-testing-pain&quot; 
id=&quot;markdown-toc-stability---reduce-building-and-testing-pain&quot;&gt;Stability
 - reduce building and testing pain&lt;/a&gt;&lt;/li&gt;
+      &lt;li&gt;&lt;a href=&quot;#documentation---make-it-user-friendly&quot; 
id=&quot;markdown-toc-documentation---make-it-user-friendly&quot;&gt;Documentation
 - make it user-friendly&lt;/a&gt;&lt;/li&gt;
+      &lt;li&gt;&lt;a 
href=&quot;#api-consistency---a-timeless-joyful-experience&quot; 
id=&quot;markdown-toc-api-consistency---a-timeless-joyful-experience&quot;&gt;API
 consistency - a timeless, joyful experience&lt;/a&gt;&lt;/li&gt;
+    &lt;/ul&gt;
+  &lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;#some-noteworthy-items&quot; 
id=&quot;markdown-toc-some-noteworthy-items&quot;&gt;Some noteworthy 
items&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;/div&gt;
+
+&lt;h1 id=&quot;a-retrospective-on-the-release-cycle&quot;&gt;A retrospective 
on the release cycle&lt;/h1&gt;
+
+&lt;p&gt;From the team, we collected emotions that have been attributed to 
points in time of the 1.14 release cycle:&lt;/p&gt;
+
+&lt;center&gt;
+&lt;img src=&quot;/img/blog/2021-11-03-flink-backward/1.14-weather.png&quot; 
width=&quot;70%&quot; /&gt;
+&lt;/center&gt;
+
+&lt;p&gt;The overall sentiment seems to be quite good. A ship crushed a robot 
two times, someone felt sick towards the end, an octopus causing negative 
emotions appeared in June…&lt;/p&gt;
+
+&lt;p&gt;We looked at the origin of these emotions and analyzed what went well 
and what could be improved. We also incorporated some feedback gathered from 
the community.&lt;/p&gt;
+
+&lt;h2 id=&quot;problems-faced&quot;&gt;Problems faced&lt;/h2&gt;
+
+&lt;p&gt;No release is perfect, and the community is constantly looking to 
improve.&lt;/p&gt;
+
+&lt;p&gt;Apache Flink has active contributors from around the globe, many of 
whom do not speak English as a first language. The community is still ironing 
out processes for delivering high-quality documentation and blog posts from a 
content perspective. It is a work in progress but we have contributors focusing 
on this component.&lt;/p&gt;
+
+&lt;p&gt;Each Flink release is built with the help of hundreds of 
contributors, each working on different parts of the project. Changes to one 
module may affect others in ways that are not always obvious. To maintain 
quality, the community supports an expansive test suite. Invariably, some tests 
are found to be flaky. Whenever we discover a test issue, the community opens a 
blocker issue that we must resolve before the next release. In practice, this 
leads to contributors triaging most t [...]
+
+&lt;p&gt;Finally, the community pushed the planned feature freeze for 1.14 by 
two weeks. Two weeks is an improvement from previous release cycles, but we 
hope to continue improving this metric for 1.15.&lt;/p&gt;
+
+&lt;h2 id=&quot;things-enjoyed&quot;&gt;Things enjoyed&lt;/h2&gt;
+
+&lt;p&gt;The implementation of some features, such as &lt;a 
href=&quot;https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/memory/network_mem_tuning/#the-buffer-debloating-mechanism&quot;&gt;buffer
 debloating&lt;/a&gt; and &lt;a 
href=&quot;https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/finegrained_resource/&quot;&gt;fine-grained
 resource management&lt;/a&gt;, went smoothly. Though a few issues are now 
popping up as people begin using the [...]
+
+&lt;p&gt;We also said goodbye to some components, the old table planner and 
integrated Mesos support. As any developer will tell you, there’s nothing 
better than deleting old code and reducing complexity.&lt;/p&gt;
+
+&lt;h1 id=&quot;what-we-want-to-achieve-through-process-changes&quot;&gt;What 
we want to achieve through process changes&lt;/h1&gt;
+
+&lt;h2 
id=&quot;transparency---let-the-community-participate&quot;&gt;Transparency - 
let the community participate&lt;/h2&gt;
+
+&lt;p&gt;When approaching a release, usually a couple of weeks after the 
previous release has been done, we set up bi-weekly meetings for the community 
to discuss any issues regarding the release. The usefulness of those meetings 
varied a lot, and so we started to &lt;a 
href=&quot;https://cwiki.apache.org/confluence/display/FLINK/1.14+Release&quot;&gt;track
 the efforts&lt;/a&gt; in the Apache Flink Confluence wiki.&lt;/p&gt;
+
+&lt;p&gt;We came up with a system to label the current states of each feature: 
“independent”, “won’t make it”, “very unlikely”, “will make it”, “done”, and 
“done done”. We introduced the “done done” state since we lacked a shared 
understanding of the definition of done. To qualify for “done done”, the 
feature is manually tested by someone not involved in the implementation. 
Additionally, there must exist comprehensive documentation that enables users 
to use the feature.&lt;/p&gt;
+
+&lt;p&gt;After each meeting, we provided updates on the mailing list and 
created a corresponding burn-down chart. Those efforts have well been received 
by our contributors, although they might still require some 
improvements.&lt;/p&gt;
+
+&lt;p&gt;The meeting used to only be for those driving the primary efforts, 
but we opened it up to the whole community for this release. While nobody ended 
up joining, we will continue to make the meetings open to everyone.&lt;/p&gt;
+
+&lt;h2 
id=&quot;stability---reduce-building-and-testing-pain&quot;&gt;Stability - 
reduce building and testing pain&lt;/h2&gt;
+
+&lt;p&gt;At one point, as we were coming close to the feature freeze, the 
stability of the master branch became quite unstable. Although we have 
encountered this issue in the past, building and testing Flink under such 
conditions was not ideal.&lt;/p&gt;
+
+&lt;p&gt;As a result, we focused on reducing stability issues, and the release 
managers have tried to organize and manage this effort. In future development 
cycles, the whole community needs to focus on the stability of the master 
branch. There are already improvements in the making, and they will hopefully 
enhance the experience of contributing significantly.&lt;/p&gt;
+
+&lt;h2 id=&quot;documentation---make-it-user-friendly&quot;&gt;Documentation - 
make it user-friendly&lt;/h2&gt;
+
+&lt;p&gt;Coming back to Apache traditions, most of the documentation (if any) 
was still being pushed after the feature freeze. As mentioned before, 
documentation is required to achieve the level of “done done”. Going forward, 
we will keep more of an eye on pushing documentation earlier in the development 
process. Apache Flink is an amazing piece of software that can solve so many 
problems, but we can do so much more in improving the user experience and 
introducing it to a wider audience. [...]
+
+&lt;h2 id=&quot;api-consistency---a-timeless-joyful-experience&quot;&gt;API 
consistency - a timeless, joyful experience&lt;/h2&gt;
+
+&lt;p&gt;The issue of API consistency was not caused by the 1.14 release, but 
popped up during the development cycle nevertheless, including a bigger 
discussion on the mailing list. While we tried to be transparent about the 
&lt;a 
href=&quot;https://cwiki.apache.org/confluence/display/FLINK/Stability+Annotations&quot;&gt;stability
 guarantees of an API&lt;/a&gt; (there are no guarantees across major 
versions), this was not made very clear or easy to find. Since many users rely 
on PublicEv [...]
+
+&lt;p&gt;Moving forward, we will document more clearly what the guarantees are 
and introduce a process for promoting PublicEvolving APIs. This might involve 
generating a report on any removed/modified PublicEvolving APIs during the 
release cycle so that downstream projects can prepare for the changes.&lt;/p&gt;
+
+&lt;h1 id=&quot;some-noteworthy-items&quot;&gt;Some noteworthy items&lt;/h1&gt;
+
+&lt;p&gt;The first iteration for the buffer debloat feature was done in a 
Hackathon.&lt;/p&gt;
+
+&lt;p&gt;Our &lt;a 
href=&quot;https://cwiki.apache.org/confluence/display/FLINK/1.14+Release&quot;&gt;Apache
 Flink 1.14 Release wiki page&lt;/a&gt; has 167 historic versions. For 
comparison, &lt;a 
href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-147%3A+Support+Checkpoints+After+Tasks+Finished&quot;&gt;FLIP
 147&lt;/a&gt; (one of the most active FLIPs) has just 76.&lt;/p&gt;
+
+&lt;p&gt;With &lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-2491&quot;&gt;FLINK-2491&lt;/a&gt;,
 we closed the third most watched issue in the Apache Flink Jira. This makes 
sense since FLINK-2491 was created 6 years ago (August 6, 2015). The second 
oldest issue was created in 2017.&lt;/p&gt;
+
+&lt;p&gt;:heart:&lt;/p&gt;
+
+&lt;p&gt;An open source community is more than just working on software. 
Apache Flink is the perfect example of software that is collaborated on in all 
parts of the world. The active mailing list, the discussions on FLIPs, and the 
interactions on Jira tickets all document how people work together to build 
something great. We should never forget that.&lt;/p&gt;
+
+&lt;p&gt;In the meantime, the community is already working towards Apache 
Flink 1.15. If you would like to become a contributor, please reach out via the 
&lt;a 
href=&quot;https://flink.apache.org/community.html#mailing-lists&quot;&gt;dev 
mailing list&lt;/a&gt;.  We are happy to help you find a ticket to get started 
on.&lt;/p&gt;
+</description>
+<pubDate>Wed, 03 Nov 2021 01:00:00 +0100</pubDate>
+<link>https://flink.apache.org/2021/11/03/flink-backward.html</link>
+<guid isPermaLink="true">/2021/11/03/flink-backward.html</guid>
+</item>
+
+<item>
 <title>Sort-Based Blocking Shuffle Implementation in Flink - Part Two</title>
 <description>&lt;p&gt;&lt;a 
href=&quot;/2021/10/26/sort-shuffle-part1&quot;&gt;Part one&lt;/a&gt; of this 
blog post explained the motivation behind introducing sort-based blocking 
shuffle, presented benchmark results, and provided guidelines on how to use 
this new feature.&lt;/p&gt;
 
@@ -20152,113 +20250,5 @@ Special credits go to the following members for 
contributing to the 1.7.0 releas
 <guid isPermaLink="true">/news/2018/10/29/release-1.6.2.html</guid>
 </item>
 
-<item>
-<title>Apache Flink 1.5.5 Released</title>
-<description>&lt;p&gt;The Apache Flink community released the fifth bugfix 
version of the Apache Flink 1.5 series.&lt;/p&gt;
-
-&lt;p&gt;This release includes more than 20 fixes and minor improvements for 
Flink 1.5.4. The list below includes a detailed list of all fixes.&lt;/p&gt;
-
-&lt;p&gt;We highly recommend all users to upgrade to Flink 1.5.5.&lt;/p&gt;
-
-&lt;p&gt;Updated Maven dependencies:&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-xml&quot;&gt;&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.flink&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;flink-java&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.5.5&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
-&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
-&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.flink&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;flink-streaming-java_2.11&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.5.5&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
-&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
-&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.flink&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;flink-clients_2.11&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
-  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.5.5&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
-&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;You can find the binaries on the updated &lt;a 
href=&quot;http://flink.apache.org/downloads.html&quot;&gt;Downloads 
page&lt;/a&gt;.&lt;/p&gt;
-
-&lt;p&gt;List of resolved issues:&lt;/p&gt;
-
-&lt;h2&gt;        Sub-task
-&lt;/h2&gt;
-&lt;ul&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10242&quot;&gt;FLINK-10242&lt;/a&gt;]
 -         Latency marker interval should be configurable
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10243&quot;&gt;FLINK-10243&lt;/a&gt;]
 -         Add option to reduce latency metrics granularity
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10331&quot;&gt;FLINK-10331&lt;/a&gt;]
 -         Reduce number of flush requests to the network stack
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10332&quot;&gt;FLINK-10332&lt;/a&gt;]
 -         Move data available notification in PipelinedSubpartition out of the 
synchronized block
-&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2&gt;        Bug
-&lt;/h2&gt;
-&lt;ul&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-5542&quot;&gt;FLINK-5542&lt;/a&gt;]
 -         YARN client incorrectly uses local YARN config to check vcore 
capacity
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9567&quot;&gt;FLINK-9567&lt;/a&gt;]
 -         Flink does not release resource in Yarn Cluster mode
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9788&quot;&gt;FLINK-9788&lt;/a&gt;]
 -         ExecutionGraph Inconsistency prevents Job from recovering
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9884&quot;&gt;FLINK-9884&lt;/a&gt;]
 -         Slot request may not be removed when it has already be assigned in 
slot manager
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9891&quot;&gt;FLINK-9891&lt;/a&gt;]
 -         Flink cluster is not shutdown in YARN mode when Flink client is 
stopped
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9932&quot;&gt;FLINK-9932&lt;/a&gt;]
 -         Timed-out TaskExecutor slot-offers to JobMaster leak the slot
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10135&quot;&gt;FLINK-10135&lt;/a&gt;]
 -         Certain cluster-level metrics are no longer exposed
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10222&quot;&gt;FLINK-10222&lt;/a&gt;]
 -         Table scalar function expression parses error when function name 
equals the exists keyword suffix
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10259&quot;&gt;FLINK-10259&lt;/a&gt;]
 -         Key validation for GroupWindowAggregate is broken
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10316&quot;&gt;FLINK-10316&lt;/a&gt;]
 -         Add check to KinesisProducer that aws.region is set
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10354&quot;&gt;FLINK-10354&lt;/a&gt;]
 -         Savepoints should be counted as retained checkpoints
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10400&quot;&gt;FLINK-10400&lt;/a&gt;]
 -         Return failed JobResult if job terminates in state FAILED or CANCELED
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10415&quot;&gt;FLINK-10415&lt;/a&gt;]
 -         RestClient does not react to lost connection
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10451&quot;&gt;FLINK-10451&lt;/a&gt;]
 -         TableFunctionCollector should handle the life cycle of ScalarFunction
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10469&quot;&gt;FLINK-10469&lt;/a&gt;]
 -         FileChannel may not write the whole buffer in a single call to 
FileChannel.write(Buffer buffer)
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10487&quot;&gt;FLINK-10487&lt;/a&gt;]
 -         fix invalid Flink SQL example
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10516&quot;&gt;FLINK-10516&lt;/a&gt;]
 -         YarnApplicationMasterRunner does not initialize FileSystem with 
correct Flink Configuration during setup
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10524&quot;&gt;FLINK-10524&lt;/a&gt;]
 -         
MemoryManagerConcurrentModReleaseTest.testConcurrentModificationWhileReleasing 
failed on travis
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10544&quot;&gt;FLINK-10544&lt;/a&gt;]
 -         Remove custom settings.xml for snapshot deployments
-&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2&gt;        Improvement
-&lt;/h2&gt;
-&lt;ul&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10075&quot;&gt;FLINK-10075&lt;/a&gt;]
 -         HTTP connections to a secured REST endpoint flood the log
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10260&quot;&gt;FLINK-10260&lt;/a&gt;]
 -         Confusing log messages during TaskManager registration
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10282&quot;&gt;FLINK-10282&lt;/a&gt;]
 -         Provide separate thread-pool for REST endpoint
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10312&quot;&gt;FLINK-10312&lt;/a&gt;]
 -         Wrong / missing exception when submitting job
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10375&quot;&gt;FLINK-10375&lt;/a&gt;]
 -         ExceptionInChainedStubException hides wrapped exception in cause
-&lt;/li&gt;
-&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-10582&quot;&gt;FLINK-10582&lt;/a&gt;]
 -         Make REST executor thread priority configurable
-&lt;/li&gt;
-&lt;/ul&gt;
-</description>
-<pubDate>Mon, 29 Oct 2018 13:00:00 +0100</pubDate>
-<link>https://flink.apache.org/news/2018/10/29/release-1.5.5.html</link>
-<guid isPermaLink="true">/news/2018/10/29/release-1.5.5.html</guid>
-</item>
-
 </channel>
 </rss>
diff --git a/content/blog/index.html b/content/blog/index.html
index 81a3025..5d94d64 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/2021/11/03/flink-backward.html">Flink 
Backward - The Apache Flink Retrospective</a></h2>
+
+      <p>03 Nov 2021
+       Johannes Moser </p>
+
+      <p>A look back at the development cycle for Flink 1.14</p>
+
+      <p><a href="/2021/11/03/flink-backward.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking Shuffle 
Implementation in Flink - Part Two</a></h2>
 
       <p>26 Oct 2021
@@ -337,21 +350,6 @@ This new release brings various improvements to the 
StateFun runtime, a leaner w
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2021/08/06/release-1.13.2.html">Apache Flink 1.13.2 
Released</a></h2>
-
-      <p>06 Aug 2021
-       Yun Tang </p>
-
-      <p><p>The Apache Flink community released the second bugfix version of 
the Apache Flink 1.13 series.</p>
-
-</p>
-
-      <p><a href="/news/2021/08/06/release-1.13.2.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -384,6 +382,16 @@ This new release brings various improvements to the 
StateFun runtime, a leaner w
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page10/index.html b/content/blog/page10/index.html
index c495766..cef5742 100644
--- a/content/blog/page10/index.html
+++ b/content/blog/page10/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/news/2019/03/06/ffsf-preview.html">What 
to expect from Flink Forward San Francisco 2019</a></h2>
+
+      <p>06 Mar 2019
+       Fabian Hueske (<a href="https://twitter.com/fhueske";>@fhueske</a>)</p>
+
+      <p>The third annual Flink Forward conference in San Francisco is just a 
few weeks away. Let's see what Flink Forward SF 2019 has in store for the 
Apache Flink and stream processing communities. This post covers some of its 
highlights!</p>
+
+      <p><a href="/news/2019/03/06/ffsf-preview.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2019/02/25/monitoring-best-practices.html">Monitoring Apache Flink 
Applications 101</a></h2>
 
       <p>25 Feb 2019
@@ -333,21 +346,6 @@ Please check the <a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2018/10/29/release-1.5.5.html">Apache Flink 1.5.5 Released</a></h2>
-
-      <p>29 Oct 2018
-      </p>
-
-      <p><p>The Apache Flink community released the fifth bugfix version of 
the Apache Flink 1.5 series.</p>
-
-</p>
-
-      <p><a href="/news/2018/10/29/release-1.5.5.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -380,6 +378,16 @@ Please check the <a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page11/index.html b/content/blog/page11/index.html
index 6126933..eb4b7c1 100644
--- a/content/blog/page11/index.html
+++ b/content/blog/page11/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2018/10/29/release-1.5.5.html">Apache Flink 1.5.5 Released</a></h2>
+
+      <p>29 Oct 2018
+      </p>
+
+      <p><p>The Apache Flink community released the fifth bugfix version of 
the Apache Flink 1.5 series.</p>
+
+</p>
+
+      <p><a href="/news/2018/10/29/release-1.5.5.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2018/09/20/release-1.6.1.html">Apache Flink 1.6.1 Released</a></h2>
 
       <p>20 Sep 2018
@@ -335,19 +350,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/features/2018/03/01/end-to-end-exactly-once-apache-flink.html">An 
Overview of End-to-End Exactly-Once Processing in Apache Flink (with Apache 
Kafka, too!)</a></h2>
-
-      <p>01 Mar 2018
-       Piotr Nowojski (<a 
href="https://twitter.com/PiotrNowojski";>@PiotrNowojski</a>) &amp; Mike Winters 
(<a href="https://twitter.com/wints";>@wints</a>)</p>
-
-      <p>Flink 1.4.0 introduced a new feature that makes it possible to build 
end-to-end exactly-once applications with Flink and data sources and sinks that 
support transactions.</p>
-
-      <p><a 
href="/features/2018/03/01/end-to-end-exactly-once-apache-flink.html">Continue 
reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -380,6 +382,16 @@
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page12/index.html b/content/blog/page12/index.html
index 0083203..2084428 100644
--- a/content/blog/page12/index.html
+++ b/content/blog/page12/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/features/2018/03/01/end-to-end-exactly-once-apache-flink.html">An 
Overview of End-to-End Exactly-Once Processing in Apache Flink (with Apache 
Kafka, too!)</a></h2>
+
+      <p>01 Mar 2018
+       Piotr Nowojski (<a 
href="https://twitter.com/PiotrNowojski";>@PiotrNowojski</a>) &amp; Mike Winters 
(<a href="https://twitter.com/wints";>@wints</a>)</p>
+
+      <p>Flink 1.4.0 introduced a new feature that makes it possible to build 
end-to-end exactly-once applications with Flink and data sources and sinks that 
support transactions.</p>
+
+      <p><a 
href="/features/2018/03/01/end-to-end-exactly-once-apache-flink.html">Continue 
reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2018/02/15/release-1.4.1.html">Apache Flink 1.4.1 Released</a></h2>
 
       <p>15 Feb 2018
@@ -334,21 +347,6 @@ what’s coming in Flink 1.4.0 as well as a preview of what 
the Flink community
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2017/05/16/official-docker-image.html">Introducing Docker Images 
for Apache Flink</a></h2>
-
-      <p>16 May 2017 by Patrick Lucas (Data Artisans) and Ismaël Mejía 
(Talend) (<a href="https://twitter.com/";>@iemejia</a>)
-      </p>
-
-      <p><p>For some time, the Apache Flink community has provided scripts to 
build a Docker image to run Flink. Now, starting with version 1.2.1, Flink will 
have a <a href="https://hub.docker.com/r/_/flink/";>Docker image</a> on the 
Docker Hub. This image is maintained by the Flink community and curated by the 
<a href="https://github.com/docker-library/official-images";>Docker</a> team to 
ensure it meets the quality standards for container images of the Docker 
community.</p>
-
-</p>
-
-      <p><a href="/news/2017/05/16/official-docker-image.html">Continue 
reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -381,6 +379,16 @@ what’s coming in Flink 1.4.0 as well as a preview of what 
the Flink community
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page13/index.html b/content/blog/page13/index.html
index 8ac0709..8002476 100644
--- a/content/blog/page13/index.html
+++ b/content/blog/page13/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2017/05/16/official-docker-image.html">Introducing Docker Images 
for Apache Flink</a></h2>
+
+      <p>16 May 2017 by Patrick Lucas (Data Artisans) and Ismaël Mejía 
(Talend) (<a href="https://twitter.com/";>@iemejia</a>)
+      </p>
+
+      <p><p>For some time, the Apache Flink community has provided scripts to 
build a Docker image to run Flink. Now, starting with version 1.2.1, Flink will 
have a <a href="https://hub.docker.com/r/_/flink/";>Docker image</a> on the 
Docker Hub. This image is maintained by the Flink community and curated by the 
<a href="https://github.com/docker-library/official-images";>Docker</a> team to 
ensure it meets the quality standards for container images of the Docker 
community.</p>
+
+</p>
+
+      <p><a href="/news/2017/05/16/official-docker-image.html">Continue 
reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2017/04/26/release-1.2.1.html">Apache Flink 1.2.1 Released</a></h2>
 
       <p>26 Apr 2017
@@ -328,21 +343,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2016/08/24/ff16-keynotes-panels.html">Flink Forward 2016: 
Announcing Schedule, Keynotes, and Panel Discussion</a></h2>
-
-      <p>24 Aug 2016
-      </p>
-
-      <p><p>An update for the Flink community: the <a 
href="http://flink-forward.org/kb_day/day-1/";>Flink Forward 2016 schedule</a> 
is now available online. This year's event will include 2 days of talks from 
stream processing experts at Google, MapR, Alibaba, Netflix, Cloudera, and 
more. Following the talks is a full day of hands-on Flink training.</p>
-
-</p>
-
-      <p><a href="/news/2016/08/24/ff16-keynotes-panels.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -375,6 +375,16 @@
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page14/index.html b/content/blog/page14/index.html
index 84ca9c2..53bc23b 100644
--- a/content/blog/page14/index.html
+++ b/content/blog/page14/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2016/08/24/ff16-keynotes-panels.html">Flink Forward 2016: 
Announcing Schedule, Keynotes, and Panel Discussion</a></h2>
+
+      <p>24 Aug 2016
+      </p>
+
+      <p><p>An update for the Flink community: the <a 
href="http://flink-forward.org/kb_day/day-1/";>Flink Forward 2016 schedule</a> 
is now available online. This year's event will include 2 days of talks from 
stream processing experts at Google, MapR, Alibaba, Netflix, Cloudera, and 
more. Following the talks is a full day of hands-on Flink training.</p>
+
+</p>
+
+      <p><a href="/news/2016/08/24/ff16-keynotes-panels.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2016/08/11/release-1.1.1.html">Flink 1.1.1 Released</a></h2>
 
       <p>11 Aug 2016
@@ -332,21 +347,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2016/02/11/release-0.10.2.html">Flink 0.10.2 Released</a></h2>
-
-      <p>11 Feb 2016
-      </p>
-
-      <p><p>Today, the Flink community released Flink version 
<strong>0.10.2</strong>, the second bugfix release of the 0.10 series.</p>
-
-</p>
-
-      <p><a href="/news/2016/02/11/release-0.10.2.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -379,6 +379,16 @@
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page15/index.html b/content/blog/page15/index.html
index 95be170..59e4508 100644
--- a/content/blog/page15/index.html
+++ b/content/blog/page15/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2016/02/11/release-0.10.2.html">Flink 0.10.2 Released</a></h2>
+
+      <p>11 Feb 2016
+      </p>
+
+      <p><p>Today, the Flink community released Flink version 
<strong>0.10.2</strong>, the second bugfix release of the 0.10 series.</p>
+
+</p>
+
+      <p><a href="/news/2016/02/11/release-0.10.2.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2015/12/18/a-year-in-review.html">Flink 2015: A year in review, and 
a lookout to 2016</a></h2>
 
       <p>18 Dec 2015 by Robert Metzger (<a 
href="https://twitter.com/";>@rmetzger_</a>)
@@ -336,21 +351,6 @@ vertex-centric or gather-sum-apply to Flink dataflows.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2015/06/24/announcing-apache-flink-0.9.0-release.html">Announcing 
Apache Flink 0.9.0</a></h2>
-
-      <p>24 Jun 2015
-      </p>
-
-      <p><p>The Apache Flink community is pleased to announce the availability 
of the 0.9.0 release. The release is the result of many months of hard work 
within the Flink community. It contains many new features and improvements 
which were previewed in the 0.9.0-milestone1 release and have been polished 
since then. This is the largest Flink release so far.</p>
-
-</p>
-
-      <p><a 
href="/news/2015/06/24/announcing-apache-flink-0.9.0-release.html">Continue 
reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -383,6 +383,16 @@ vertex-centric or gather-sum-apply to Flink dataflows.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page16/index.html b/content/blog/page16/index.html
index 25243f0..b239a0c 100644
--- a/content/blog/page16/index.html
+++ b/content/blog/page16/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2015/06/24/announcing-apache-flink-0.9.0-release.html">Announcing 
Apache Flink 0.9.0</a></h2>
+
+      <p>24 Jun 2015
+      </p>
+
+      <p><p>The Apache Flink community is pleased to announce the availability 
of the 0.9.0 release. The release is the result of many months of hard work 
within the Flink community. It contains many new features and improvements 
which were previewed in the 0.9.0-milestone1 release and have been polished 
since then. This is the largest Flink release so far.</p>
+
+</p>
+
+      <p><a 
href="/news/2015/06/24/announcing-apache-flink-0.9.0-release.html">Continue 
reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2015/05/14/Community-update-April.html">April 2015 in the Flink 
community</a></h2>
 
       <p>14 May 2015 by Kostas Tzoumas (<a 
href="https://twitter.com/";>@kostas_tzoumas</a>)
@@ -342,21 +357,6 @@ and offers a new API including definition of flexible 
windows.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2015/01/06/december-in-flink.html">December 2014 in the Flink 
community</a></h2>
-
-      <p>06 Jan 2015
-      </p>
-
-      <p><p>This is the first blog post of a “newsletter” like series where we 
give a summary of the monthly activity in the Flink community. As the Flink 
project grows, this can serve as a “tl;dr” for people that are not following 
the Flink dev and user mailing lists, or those that are simply overwhelmed by 
the traffic.</p>
-
-</p>
-
-      <p><a href="/news/2015/01/06/december-in-flink.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -389,6 +389,16 @@ and offers a new API including definition of flexible 
windows.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page17/index.html b/content/blog/page17/index.html
index 60796da..8781cb6 100644
--- a/content/blog/page17/index.html
+++ b/content/blog/page17/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2015/01/06/december-in-flink.html">December 2014 in the Flink 
community</a></h2>
+
+      <p>06 Jan 2015
+      </p>
+
+      <p><p>This is the first blog post of a “newsletter” like series where we 
give a summary of the monthly activity in the Flink community. As the Flink 
project grows, this can serve as a “tl;dr” for people that are not following 
the Flink dev and user mailing lists, or those that are simply overwhelmed by 
the traffic.</p>
+
+</p>
+
+      <p><a href="/news/2015/01/06/december-in-flink.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2014/11/18/hadoop-compatibility.html">Hadoop Compatibility in 
Flink</a></h2>
 
       <p>18 Nov 2014 by Fabian Hüske (<a 
href="https://twitter.com/";>@fhueske</a>)
@@ -310,6 +325,16 @@ academic and open source project that Flink originates 
from.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page2/index.html b/content/blog/page2/index.html
index e028cef..367c1da 100644
--- a/content/blog/page2/index.html
+++ b/content/blog/page2/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2021/08/06/release-1.13.2.html">Apache Flink 1.13.2 
Released</a></h2>
+
+      <p>06 Aug 2021
+       Yun Tang </p>
+
+      <p><p>The Apache Flink community released the second bugfix version of 
the Apache Flink 1.13 series.</p>
+
+</p>
+
+      <p><a href="/news/2021/08/06/release-1.13.2.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2021/08/06/release-1.12.5.html">Apache Flink 1.12.5 
Released</a></h2>
 
       <p>06 Aug 2021
@@ -329,21 +344,6 @@ to develop scalable, consistent, and elastic distributed 
applications.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2021/03/03/release-1.12.2.html">Apache Flink 1.12.2 
Released</a></h2>
-
-      <p>03 Mar 2021
-       Yuan Mei  &amp; Roman Khachatryan </p>
-
-      <p><p>The Apache Flink community released the next bugfix version of the 
Apache Flink 1.12 series.</p>
-
-</p>
-
-      <p><a href="/news/2021/03/03/release-1.12.2.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -376,6 +376,16 @@ to develop scalable, consistent, and elastic distributed 
applications.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page3/index.html b/content/blog/page3/index.html
index 443fc28..978603b 100644
--- a/content/blog/page3/index.html
+++ b/content/blog/page3/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2021/03/03/release-1.12.2.html">Apache Flink 1.12.2 
Released</a></h2>
+
+      <p>03 Mar 2021
+       Yuan Mei  &amp; Roman Khachatryan </p>
+
+      <p><p>The Apache Flink community released the next bugfix version of the 
Apache Flink 1.12 series.</p>
+
+</p>
+
+      <p><a href="/news/2021/03/03/release-1.12.2.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a href="/2021/02/10/native-k8s-with-ha.html">How 
to natively deploy Flink on Kubernetes with High-Availability (HA)</a></h2>
 
       <p>10 Feb 2021
@@ -325,19 +340,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2020/12/10/release-1.12.0.html">Apache Flink 1.12.0 Release 
Announcement</a></h2>
-
-      <p>10 Dec 2020
-       Marta Paes (<a href="https://twitter.com/morsapaes";>@morsapaes</a>) 
&amp; Aljoscha Krettek (<a 
href="https://twitter.com/aljoscha";>@aljoscha</a>)</p>
-
-      <p>The Apache Flink community is excited to announce the release of 
Flink 1.12.0! Close to 300 contributors worked on over 1k threads to bring 
significant improvements to usability as well as new features to Flink users 
across the whole API stack. We're particularly excited about adding efficient 
batch execution to the DataStream API, Kubernetes HA as an alternative to 
ZooKeeper, support for upsert mode in the Kafka SQL connector and the new 
Python DataStream API! Read on for all m [...]
-
-      <p><a href="/news/2020/12/10/release-1.12.0.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -370,6 +372,16 @@
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page4/index.html b/content/blog/page4/index.html
index 8285825..a531764 100644
--- a/content/blog/page4/index.html
+++ b/content/blog/page4/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2020/12/10/release-1.12.0.html">Apache Flink 1.12.0 Release 
Announcement</a></h2>
+
+      <p>10 Dec 2020
+       Marta Paes (<a href="https://twitter.com/morsapaes";>@morsapaes</a>) 
&amp; Aljoscha Krettek (<a 
href="https://twitter.com/aljoscha";>@aljoscha</a>)</p>
+
+      <p>The Apache Flink community is excited to announce the release of 
Flink 1.12.0! Close to 300 contributors worked on over 1k threads to bring 
significant improvements to usability as well as new features to Flink users 
across the whole API stack. We're particularly excited about adding efficient 
batch execution to the DataStream API, Kubernetes HA as an alternative to 
ZooKeeper, support for upsert mode in the Kafka SQL connector and the new 
Python DataStream API! Read on for all m [...]
+
+      <p><a href="/news/2020/12/10/release-1.12.0.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2020/11/11/release-statefun-2.2.1.html">Stateful Functions 2.2.1 
Release Announcement</a></h2>
 
       <p>11 Nov 2020
@@ -329,21 +342,6 @@ as well as increased observability for operational 
purposes.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a href="/2020/08/19/statefun.html">Monitoring 
and Controlling Networks of IoT Devices with Flink Stateful Functions</a></h2>
-
-      <p>19 Aug 2020
-       Igal Shilman (<a 
href="https://twitter.com/IgalShilman";>@IgalShilman</a>)</p>
-
-      <p><p>In this blog post, we’ll take a look at a class of use cases that 
is a natural fit for <a 
href="https://flink.apache.org/stateful-functions.html";>Flink Stateful 
Functions</a>: monitoring and controlling networks of connected devices (often 
called the “Internet of Things” (IoT)).</p>
-
-</p>
-
-      <p><a href="/2020/08/19/statefun.html">Continue reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -376,6 +374,16 @@ as well as increased observability for operational 
purposes.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page5/index.html b/content/blog/page5/index.html
index a67f18e..9df7508 100644
--- a/content/blog/page5/index.html
+++ b/content/blog/page5/index.html
@@ -201,6 +201,21 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a href="/2020/08/19/statefun.html">Monitoring 
and Controlling Networks of IoT Devices with Flink Stateful Functions</a></h2>
+
+      <p>19 Aug 2020
+       Igal Shilman (<a 
href="https://twitter.com/IgalShilman";>@IgalShilman</a>)</p>
+
+      <p><p>In this blog post, we’ll take a look at a class of use cases that 
is a natural fit for <a 
href="https://flink.apache.org/stateful-functions.html";>Flink Stateful 
Functions</a>: monitoring and controlling networks of connected devices (often 
called the “Internet of Things” (IoT)).</p>
+
+</p>
+
+      <p><a href="/2020/08/19/statefun.html">Continue reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2020/08/06/external-resource.html">Accelerating your workload with 
GPU and other external resources</a></h2>
 
       <p>06 Aug 2020
@@ -328,22 +343,6 @@ illustrate this trend.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/ecosystem/2020/06/23/flink-on-zeppelin-part2.html">Flink on Zeppelin 
Notebooks for Interactive Data Analysis - Part 2</a></h2>
-
-      <p>23 Jun 2020
-       Jeff Zhang (<a href="https://twitter.com/zjffdu";>@zjffdu</a>)</p>
-
-      <p><p>In a previous post, we introduced the basics of Flink on Zeppelin 
and how to do Streaming ETL. In this second part of the “Flink on Zeppelin” 
series of posts, I will share how to 
-perform streaming data visualization via Flink on Zeppelin and how to use 
Apache Flink UDFs in Zeppelin.</p>
-
-</p>
-
-      <p><a href="/ecosystem/2020/06/23/flink-on-zeppelin-part2.html">Continue 
reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -376,6 +375,16 @@ perform streaming data visualization via Flink on Zeppelin 
and how to use Apache
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page6/index.html b/content/blog/page6/index.html
index fed1781..1b2694b 100644
--- a/content/blog/page6/index.html
+++ b/content/blog/page6/index.html
@@ -201,6 +201,22 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/ecosystem/2020/06/23/flink-on-zeppelin-part2.html">Flink on Zeppelin 
Notebooks for Interactive Data Analysis - Part 2</a></h2>
+
+      <p>23 Jun 2020
+       Jeff Zhang (<a href="https://twitter.com/zjffdu";>@zjffdu</a>)</p>
+
+      <p><p>In a previous post, we introduced the basics of Flink on Zeppelin 
and how to do Streaming ETL. In this second part of the “Flink on Zeppelin” 
series of posts, I will share how to 
+perform streaming data visualization via Flink on Zeppelin and how to use 
Apache Flink UDFs in Zeppelin.</p>
+
+</p>
+
+      <p><a href="/ecosystem/2020/06/23/flink-on-zeppelin-part2.html">Continue 
reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2020/06/15/flink-on-zeppelin-part1.html">Flink on Zeppelin 
Notebooks for Interactive Data Analysis - Part 1</a></h2>
 
       <p>15 Jun 2020
@@ -327,19 +343,6 @@ and provide a tutorial for running Streaming ETL with 
Flink on Zeppelin.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/2020/04/09/pyflink-udf-support-flink.html">PyFlink: Introducing Python 
Support for UDFs in Flink's Table API</a></h2>
-
-      <p>09 Apr 2020
-       Jincheng Sun (<a 
href="https://twitter.com/sunjincheng121";>@sunjincheng121</a>) &amp; Markos 
Sfikas (<a href="https://twitter.com/MarkSfik";>@MarkSfik</a>)</p>
-
-      <p>Flink 1.10 extends its support for Python by adding Python UDFs in 
PyFlink. This post explains how UDFs work in PyFlink and gives some practical 
examples of how to use UDFs in PyFlink.</p>
-
-      <p><a href="/2020/04/09/pyflink-udf-support-flink.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -372,6 +375,16 @@ and provide a tutorial for running Streaming ETL with 
Flink on Zeppelin.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page7/index.html b/content/blog/page7/index.html
index 8ab5b1a..324c912 100644
--- a/content/blog/page7/index.html
+++ b/content/blog/page7/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/2020/04/09/pyflink-udf-support-flink.html">PyFlink: Introducing Python 
Support for UDFs in Flink's Table API</a></h2>
+
+      <p>09 Apr 2020
+       Jincheng Sun (<a 
href="https://twitter.com/sunjincheng121";>@sunjincheng121</a>) &amp; Markos 
Sfikas (<a href="https://twitter.com/MarkSfik";>@MarkSfik</a>)</p>
+
+      <p>Flink 1.10 extends its support for Python by adding Python UDFs in 
PyFlink. This post explains how UDFs work in PyFlink and gives some practical 
examples of how to use UDFs in PyFlink.</p>
+
+      <p><a href="/2020/04/09/pyflink-udf-support-flink.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2020/04/07/release-statefun-2.0.0.html">Stateful Functions 2.0 - An 
Event-driven Database on Apache Flink</a></h2>
 
       <p>07 Apr 2020
@@ -326,19 +339,6 @@ This release marks a big milestone: Stateful Functions 2.0 
is not only an API up
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/news/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink.html">State
 Unlocked: Interacting with State in Apache Flink</a></h2>
-
-      <p>29 Jan 2020
-       Seth Wiesman (<a 
href="https://twitter.com/sjwiesman";>@sjwiesman</a>)</p>
-
-      <p>This post discusses the efforts of the Flink community as they relate 
to state management in Apache Flink. We showcase some practical examples of how 
the different features and APIs can be utilized and cover some future ideas for 
new and improved ways of managing state in Apache Flink.</p>
-
-      <p><a 
href="/news/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink.html">Continue
 reading &raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -371,6 +371,16 @@ This release marks a big milestone: Stateful Functions 2.0 
is not only an API up
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page8/index.html b/content/blog/page8/index.html
index 51d0e3f..7fe203f 100644
--- a/content/blog/page8/index.html
+++ b/content/blog/page8/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/news/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink.html">State
 Unlocked: Interacting with State in Apache Flink</a></h2>
+
+      <p>29 Jan 2020
+       Seth Wiesman (<a 
href="https://twitter.com/sjwiesman";>@sjwiesman</a>)</p>
+
+      <p>This post discusses the efforts of the Flink community as they relate 
to state management in Apache Flink. We showcase some practical examples of how 
the different features and APIs can be utilized and cover some future ideas for 
new and improved ways of managing state in Apache Flink.</p>
+
+      <p><a 
href="/news/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink.html">Continue
 reading &raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2020/01/15/demo-fraud-detection.html">Advanced Flink Application 
Patterns Vol.1: Case Study of a Fraud Detection System</a></h2>
 
       <p>15 Jan 2020
@@ -326,19 +339,6 @@
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a 
href="/2019/07/23/flink-network-stack-2.html">Flink Network Stack Vol. 2: 
Monitoring, Metrics, and that Backpressure Thing</a></h2>
-
-      <p>23 Jul 2019
-       Nico Kruber  &amp; Piotr Nowojski </p>
-
-      <p>In a previous blog post, we presented how Flink’s network stack works 
from the high-level abstractions to the low-level details. This second  post 
discusses monitoring network-related metrics to identify backpressure or 
bottlenecks in throughput and latency.</p>
-
-      <p><a href="/2019/07/23/flink-network-stack-2.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -371,6 +371,16 @@
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/blog/page9/index.html b/content/blog/page9/index.html
index a2a6a96..8ae7f30 100644
--- a/content/blog/page9/index.html
+++ b/content/blog/page9/index.html
@@ -201,6 +201,19 @@
     <!-- Blog posts -->
     
     <article>
+      <h2 class="blog-title"><a 
href="/2019/07/23/flink-network-stack-2.html">Flink Network Stack Vol. 2: 
Monitoring, Metrics, and that Backpressure Thing</a></h2>
+
+      <p>23 Jul 2019
+       Nico Kruber  &amp; Piotr Nowojski </p>
+
+      <p>In a previous blog post, we presented how Flink’s network stack works 
from the high-level abstractions to the low-level details. This second  post 
discusses monitoring network-related metrics to identify backpressure or 
bottlenecks in throughput and latency.</p>
+
+      <p><a href="/2019/07/23/flink-network-stack-2.html">Continue reading 
&raquo;</a></p>
+    </article>
+
+    <hr>
+    
+    <article>
       <h2 class="blog-title"><a 
href="/news/2019/07/02/release-1.8.1.html">Apache Flink 1.8.1 Released</a></h2>
 
       <p>02 Jul 2019
@@ -327,19 +340,6 @@ for more details.</p>
 
     <hr>
     
-    <article>
-      <h2 class="blog-title"><a href="/news/2019/03/06/ffsf-preview.html">What 
to expect from Flink Forward San Francisco 2019</a></h2>
-
-      <p>06 Mar 2019
-       Fabian Hueske (<a href="https://twitter.com/fhueske";>@fhueske</a>)</p>
-
-      <p>The third annual Flink Forward conference in San Francisco is just a 
few weeks away. Let's see what Flink Forward SF 2019 has in store for the 
Apache Flink and stream processing communities. This post covers some of its 
highlights!</p>
-
-      <p><a href="/news/2019/03/06/ffsf-preview.html">Continue reading 
&raquo;</a></p>
-    </article>
-
-    <hr>
-    
 
     <!-- Pagination links -->
     
@@ -372,6 +372,16 @@ for more details.</p>
 
     <ul id="markdown-toc">
       
+      <li><a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></li>
+
+      
+        
+      
+    
+      
+      
+
+      
       <li><a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></li>
 
       
diff --git a/content/img/blog/2021-11-03-flink-backward/1.14-weather.png 
b/content/img/blog/2021-11-03-flink-backward/1.14-weather.png
new file mode 100644
index 0000000..a6a9a6e
Binary files /dev/null and 
b/content/img/blog/2021-11-03-flink-backward/1.14-weather.png differ
diff --git a/content/index.html b/content/index.html
index f4e1d3e..b169a83 100644
--- a/content/index.html
+++ b/content/index.html
@@ -365,6 +365,9 @@
 
   <dl>
       
+        <dt> <a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></dt>
+        <dd>A look back at the development cycle for Flink 1.14</dd>
+      
         <dt> <a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></dt>
         <dd>Flink has implemented the sort-based blocking shuffle (FLIP-148) 
for batch data processing. In this blog post, we will take a close look at the 
design &amp; implementation details and see what we can gain from it.</dd>
       
@@ -378,11 +381,6 @@
       
         <dt> <a href="/news/2021/09/29/release-1.14.0.html">Apache Flink 
1.14.0 Release Announcement</a></dt>
         <dd>The Apache Flink community is excited to announce the release of 
Flink 1.14.0! More than 200 contributor worked on over 1,000 issues. The 
release brings exciting new features like a more seamless streaming/batch 
integration, automatic network memory tuning, a hybrid source to switch data 
streams between storgage systems (e.g., Kafka/S3), Fine-grained resource 
management, PyFlink performance and debugging enhancements, and a Pulsar 
connector.</dd>
-      
-        <dt> <a 
href="/2021/09/07/connector-table-sql-api-part2.html">Implementing a custom 
source connector for Table API and SQL - Part Two </a></dt>
-        <dd><p>In <a href="/2021/09/07/connector-table-sql-api-part1">part 
one</a> of this tutorial, you learned how to build a custom source connector 
for Flink. In part two, you will learn how to integrate the connector with a 
test email inbox through the IMAP protocol and filter out emails using Flink 
SQL.</p>
-
-</dd>
     
   </dl>
 
diff --git a/content/zh/index.html b/content/zh/index.html
index a860a16..d01fa7b 100644
--- a/content/zh/index.html
+++ b/content/zh/index.html
@@ -362,6 +362,9 @@
 
   <dl>
       
+        <dt> <a href="/2021/11/03/flink-backward.html">Flink Backward - The 
Apache Flink Retrospective</a></dt>
+        <dd>A look back at the development cycle for Flink 1.14</dd>
+      
         <dt> <a href="/2021/10/26/sort-shuffle-part2.html">Sort-Based Blocking 
Shuffle Implementation in Flink - Part Two</a></dt>
         <dd>Flink has implemented the sort-based blocking shuffle (FLIP-148) 
for batch data processing. In this blog post, we will take a close look at the 
design &amp; implementation details and see what we can gain from it.</dd>
       
@@ -375,11 +378,6 @@
       
         <dt> <a href="/news/2021/09/29/release-1.14.0.html">Apache Flink 
1.14.0 Release Announcement</a></dt>
         <dd>The Apache Flink community is excited to announce the release of 
Flink 1.14.0! More than 200 contributor worked on over 1,000 issues. The 
release brings exciting new features like a more seamless streaming/batch 
integration, automatic network memory tuning, a hybrid source to switch data 
streams between storgage systems (e.g., Kafka/S3), Fine-grained resource 
management, PyFlink performance and debugging enhancements, and a Pulsar 
connector.</dd>
-      
-        <dt> <a 
href="/2021/09/07/connector-table-sql-api-part2.html">Implementing a custom 
source connector for Table API and SQL - Part Two </a></dt>
-        <dd><p>In <a href="/2021/09/07/connector-table-sql-api-part1">part 
one</a> of this tutorial, you learned how to build a custom source connector 
for Flink. In part two, you will learn how to integrate the connector with a 
test email inbox through the IMAP protocol and filter out emails using Flink 
SQL.</p>
-
-</dd>
     
   </dl>
 

Reply via email to