blob: e636b6ee2f574d9d5aeb3d1c15bc76bfac8fa86c [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" dir=ZgotmplZ>
<head>
<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
<link rel="canonical" href="https://flink.apache.org/2016/03/08/announcing-apache-flink-1.0.0/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="The Apache Flink community is pleased to announce the availability of the 1.0.0 release. The community put significant effort into improving and extending Apache Flink since the last release, focusing on improving the experience of writing and executing data stream processing pipelines in production.
Flink version 1.0.0 marks the beginning of the 1.X.X series of releases, which will maintain backwards compatibility with 1.0.0. This means that applications written against stable APIs of Flink 1.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Announcing Apache Flink 1.0.0" />
<meta property="og:description" content="The Apache Flink community is pleased to announce the availability of the 1.0.0 release. The community put significant effort into improving and extending Apache Flink since the last release, focusing on improving the experience of writing and executing data stream processing pipelines in production.
Flink version 1.0.0 marks the beginning of the 1.X.X series of releases, which will maintain backwards compatibility with 1.0.0. This means that applications written against stable APIs of Flink 1." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/2016/03/08/announcing-apache-flink-1.0.0/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2016-03-08T13:00:00+00:00" />
<meta property="article:modified_time" content="2016-03-08T13:00:00+00:00" />
<title>Announcing Apache Flink 1.0.0 | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/en.search.min.2698f0d1b683dae4d6cb071668b310a55ebcf1c48d11410a015a51d90105b53e.js" integrity="sha256-Jpjw0baD2uTWywcWaLMQpV688cSNEUEKAVpR2QEFtT4="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->
<meta name="generator" content="Hugo 0.124.1">
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
</head>
<body dir=ZgotmplZ>
<header>
<nav class="navbar navbar-expand-xl">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<img src="/img/logo/png/100/flink_squirrel_100_color.png" alt="Apache Flink" height="47" width="47" class="d-inline-block align-text-middle">
<span>Apache Flink</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-bars navbar-toggler-icon"></i>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="/what-is-flink/flink-architecture/">Architecture</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/flink-applications/">Applications</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/flink-operations/">Operations</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/use-cases/">Use Cases</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/powered-by/">Powered By</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/roadmap/">Roadmap</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/community/">Community & Project Info</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/security/">Security</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/special-thanks/">Special Thanks</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Getting Started</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/">With Flink<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/">With Flink Kubernetes Operator<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/get-started/introduction/">With Flink CDC<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/docs/try-flink-ml/quick-start/">With Flink ML<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/getting-started/project-setup.html">With Flink Stateful Functions<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/learn-flink/overview/">Training Course<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/">Flink 1.19 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-master/">Flink Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">Kubernetes Operator 1.8 (latest)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main">Kubernetes Operator Main (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable">CDC 3.0 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-master">CDC Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">ML 2.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-master">ML Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">Stateful Functions 3.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-master">Stateful Functions Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">How to Contribute</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="/how-to-contribute/overview/">Overview</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/contribute-code/">Contribute Code</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/reviewing-prs/">Review Pull Requests</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/code-style-and-quality-preamble/">Code Style and Quality Guide</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/contribute-documentation/">Contribute Documentation</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/documentation-style-guide/">Documentation Style Guide</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/improve-website/">Contribute to the Website</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/getting-help/">Getting Help</a>
</li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/posts/">Flink Blog</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/downloads/">Downloads</a>
</li>
</ul>
<div class="book-search">
<div class="book-search-spinner hidden">
<i class="fa fa-refresh fa-spin"></i>
</div>
<form class="search-bar d-flex" onsubmit="return false;"su>
<input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/">
<i class="fa fa-search search"></i>
<i class="fa fa-circle-o-notch fa-spin spinner"></i>
</form>
<div class="book-search-spinner hidden"></div>
<ul id="book-search-results"></ul>
</div>
</div>
</div>
</nav>
<div class="navbar-clearfix"></div>
</header>
<main class="flex">
<section class="container book-page">
<article class="markdown">
<h1>
<a href="/2016/03/08/announcing-apache-flink-1.0.0/">Announcing Apache Flink 1.0.0</a>
</h1>
March 8, 2016 -
<p><p>The Apache Flink community is pleased to announce the availability of the 1.0.0 release. The community put significant effort into improving and extending Apache Flink since the last release, focusing on improving the experience of writing and executing data stream processing pipelines in production.</p>
<center>
<img src="/img/blog/flink-1.0.png" style="height:200px;margin:15px">
</center>
<p>Flink version 1.0.0 marks the beginning of the 1.X.X series of releases, which will maintain backwards compatibility with 1.0.0. This means that applications written against stable APIs of Flink 1.0.0 will compile and run with all Flink versions in the 1. series. This is the first time we are formally guaranteeing compatibility in Flink&rsquo;s history, and we therefore see this release as a major milestone of the project, perhaps the most important since graduation as a top-level project.</p>
<p>Apart from backwards compatibility, Flink 1.0.0 brings a variety of new user-facing features, as well as tons of bug fixes. About 64 contributors provided bug fixes, improvements, and new features such that in total more than 450 JIRA issues could be resolved.</p>
<p>We encourage everyone to <a href="http://flink.apache.org/downloads.html">download the release</a> and <a href="//nightlies.apache.org/flink/flink-docs-release-1.0/">check out the documentation</a>. Feedback through the Flink <a href="http://flink.apache.org/community.html#mailing-lists">mailing lists</a> is, as always, very welcome!</p>
<h2 id="interface-stability-annotations">
Interface stability annotations
<a class="anchor" href="#interface-stability-annotations">#</a>
</h2>
<p>Flink 1.0.0 introduces interface stability annotations for API classes and methods. Interfaces defined as <code>@Public</code> are guaranteed to remain stable across all releases of the 1.x series. The <code>@PublicEvolving</code> annotation marks API features that may be subject to change in future versions.</p>
<p>Flink&rsquo;s stability annotations will help users to implement applications that compile and execute unchanged against future versions of Flink 1.x. This greatly reduces the complexity for users when upgrading to a newer Flink release.</p>
<h2 id="out-of-core-state-support">
Out-of-core state support
<a class="anchor" href="#out-of-core-state-support">#</a>
</h2>
<p>Flink 1.0.0 adds a new state backend that uses RocksDB to store state (both windows and user-defined key-value state). <a href="http://rocksdb.org/">RocksDB</a> is an embedded key/value store database, originally developed by Facebook.
When using this backend, active state in streaming programs can grow well beyond memory. The RocksDB files are stored in a distributed file system such as HDFS or S3 for backups.</p>
<h2 id="savepoints-and-version-upgrades">
Savepoints and version upgrades
<a class="anchor" href="#savepoints-and-version-upgrades">#</a>
</h2>
<p>Savepoints are checkpoints of the state of a running streaming job that can be manually triggered by the user while the job is running. Savepoints solve several production headaches, including code upgrades (both application and framework), cluster maintenance and migration, A/B testing and what-if scenarios, as well as testing and debugging. Read more about savepoints at the <a href="http://data-artisans.com/how-apache-flink-enables-new-streaming-applications/">data Artisans blog</a>.</p>
<h2 id="library-for-complex-event-processing-cep">
Library for Complex Event Processing (CEP)
<a class="anchor" href="#library-for-complex-event-processing-cep">#</a>
</h2>
<p>Complex Event Processing has been one of the oldest and more important use cases from stream processing. The new CEP functionality in Flink allows you to use a distributed general-purpose stream processor instead of a specialized CEP system to detect complex patterns in event streams. Get started with <a href="//nightlies.apache.org/flink/flink-docs-master/apis/streaming/libs/cep.html">CEP on Flink</a>.</p>
<h2 id="enhanced-monitoring-interface-job-submission-checkpoint-statistics-and-backpressure-monitoring">
Enhanced monitoring interface: job submission, checkpoint statistics and backpressure monitoring
<a class="anchor" href="#enhanced-monitoring-interface-job-submission-checkpoint-statistics-and-backpressure-monitoring">#</a>
</h2>
<p>The web interface now allows users to submit jobs. Previous Flink releases had a separate service for submitting jobs. The new interface is part of the JobManager frontend. It also works on YARN now.</p>
<p>Backpressure monitoring allows users to trigger a sampling mechanism which analyzes the time operators are waiting for new network buffers. When senders are spending most of their time for new network buffers, they are experiencing backpressure from their downstream operators. Many users requested this feature for understanding bottlenecks in both batch and streaming applications.</p>
<h2 id="improved-checkpointing-control-and-monitoring">
Improved checkpointing control and monitoring
<a class="anchor" href="#improved-checkpointing-control-and-monitoring">#</a>
</h2>
<p>The checkpointing has been extended by a more fine-grained control mechanism: In previous versions, new checkpoints were triggered independent of the speed at which old checkpoints completed. This can lead to situations where new checkpoints are piling up, because they are triggered too frequently.</p>
<p>The checkpoint coordinator now exposes statistics through our REST monitoring API and the web interface. Users can review the checkpoint size and duration on a per-operator basis and see the last completed checkpoints. This is helpful for identifying performance issues, such as processing slowdown by the checkpoints.</p>
<h2 id="improved-kafka-connector-and-support-for-kafka-09">
Improved Kafka connector and support for Kafka 0.9
<a class="anchor" href="#improved-kafka-connector-and-support-for-kafka-09">#</a>
</h2>
<p>Flink 1.0 supports both Kafka 0.8 and 0.9. With the new release, Flink exposes Kafka metrics for the producers and the 0.9 consumer through Flink’s accumulator system. We also enhanced the existing connector for Kafka 0.8, allowing users to subscribe to multiple topics in one source.</p>
<h2 id="changelog-and-known-issues">
Changelog and known issues
<a class="anchor" href="#changelog-and-known-issues">#</a>
</h2>
<p>This release resolves more than 450 issues, including bug fixes, improvements, and new features. See the <a href="/blog/release_1.0.0-changelog_known_issues.html#changelog">complete changelog</a> and <a href="/blog/release_1.0.0-changelog_known_issues.html#known-issues">known issues</a>.</p>
<h2 id="list-of-contributors">
List of contributors
<a class="anchor" href="#list-of-contributors">#</a>
</h2>
<ul>
<li>Abhishek Agarwal</li>
<li>Ajay Bhat</li>
<li>Aljoscha Krettek</li>
<li>Andra Lungu</li>
<li>Andrea Sella</li>
<li>Chesnay Schepler</li>
<li>Chiwan Park</li>
<li>Daniel Pape</li>
<li>Fabian Hueske</li>
<li>Filipe Correia</li>
<li>Frederick F. Kautz IV</li>
<li>Gabor Gevay</li>
<li>Gabor Horvath</li>
<li>Georgios Andrianakis</li>
<li>Greg Hogan</li>
<li>Gyula Fora</li>
<li>Henry Saputra</li>
<li>Hilmi Yildirim</li>
<li>Hubert Czerpak</li>
<li>Jark Wu</li>
<li>Johannes</li>
<li>Jun Aoki</li>
<li>Jun Aoki</li>
<li>Kostas Kloudas</li>
<li>Li Chengxiang</li>
<li>Lun Gao</li>
<li>Martin Junghanns</li>
<li>Martin Liesenberg</li>
<li>Matthias J. Sax</li>
<li>Maximilian Michels</li>
<li>Márton Balassi</li>
<li>Nick Dimiduk</li>
<li>Niels Basjes</li>
<li>Omer Katz</li>
<li>Paris Carbone</li>
<li>Patrice Freydiere</li>
<li>Peter Vandenabeele</li>
<li>Piotr Godek</li>
<li>Prez Cannady</li>
<li>Robert Metzger</li>
<li>Romeo Kienzler</li>
<li>Sachin Goel</li>
<li>Saumitra Shahapure</li>
<li>Sebastian Klemke</li>
<li>Stefano Baghino</li>
<li>Stephan Ewen</li>
<li>Stephen Samuel</li>
<li>Subhobrata Dey</li>
<li>Suneel Marthi</li>
<li>Ted Yu</li>
<li>Theodore Vasiloudis</li>
<li>Till Rohrmann</li>
<li>Timo Walther</li>
<li>Trevor Grant</li>
<li>Ufuk Celebi</li>
<li>Ulf Karlsson</li>
<li>Vasia Kalavri</li>
<li>fversaci</li>
<li>madhukar</li>
<li>qingmeng.wyh</li>
<li>ramkrishna</li>
<li>rtudoran</li>
<li>sahitya-pavurala</li>
<li>zhangminglei</li>
</ul>
</p>
</article>
<div class="edit-this-page">
<p>
<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
</p>
<p>
<a href="//github.com/apache/flink-web/edit/asf-site/docs/content/posts/2016-03-08-release-1.0.0.md">
Edit This Page<i class="fa fa-edit fa-fw"></i>
</a>
</p>
</div>
</section>
<aside class="book-toc">
<nav id="TableOfContents"><h3>On This Page <a href="javascript:void(0)" class="toc" onclick="collapseToc()"><i class="fa fa-times" aria-hidden="true"></i></a></h3>
<ul>
<li>
<ul>
<li><a href="#interface-stability-annotations">Interface stability annotations</a></li>
<li><a href="#out-of-core-state-support">Out-of-core state support</a></li>
<li><a href="#savepoints-and-version-upgrades">Savepoints and version upgrades</a></li>
<li><a href="#library-for-complex-event-processing-cep">Library for Complex Event Processing (CEP)</a></li>
<li><a href="#enhanced-monitoring-interface-job-submission-checkpoint-statistics-and-backpressure-monitoring">Enhanced monitoring interface: job submission, checkpoint statistics and backpressure monitoring</a></li>
<li><a href="#improved-checkpointing-control-and-monitoring">Improved checkpointing control and monitoring</a></li>
<li><a href="#improved-kafka-connector-and-support-for-kafka-09">Improved Kafka connector and support for Kafka 0.9</a></li>
<li><a href="#changelog-and-known-issues">Changelog and known issues</a></li>
<li><a href="#list-of-contributors">List of contributors</a></li>
</ul>
</li>
</ul>
</nav>
</aside>
<aside class="expand-toc hidden">
<a class="toc" onclick="expandToc()" href="javascript:void(0)">
<i class="fa fa-bars" aria-hidden="true"></i>
</a>
</aside>
</main>
<footer>
<div class="separator"></div>
<div class="panels">
<div class="wrapper">
<div class="panel">
<ul>
<li>
<a href="https://flink-packages.org/">flink-packages.org</a>
</li>
<li>
<a href="https://www.apache.org/">Apache Software Foundation</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
<li>
<a href="/zh/">
<i class="fa fa-globe" aria-hidden="true"></i>&nbsp;中文版
</a>
</li>
</ul>
</div>
<div class="panel">
<ul>
<li>
<a href="/what-is-flink/security">Security</a-->
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</div>
<div class="panel icons">
<div>
<a href="/posts">
<div class="icon flink-blog-icon"></div>
<span>Flink blog</span>
</a>
</div>
<div>
<a href="https://github.com/apache/flink">
<div class="icon flink-github-icon"></div>
<span>Github</span>
</a>
</div>
<div>
<a href="https://twitter.com/apacheflink">
<div class="icon flink-twitter-icon"></div>
<span>Twitter</span>
</a>
</div>
</div>
</div>
</div>
<hr/>
<div class="container disclaimer">
<p>The contents of this website are © 2024 Apache Software Foundation under the terms of the Apache License v2. Apache Flink, Flink, and the Flink logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>
</footer>
</body>
</html>