
<!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/">

  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Recent Flink blogs Apache Flink Kubernetes Operator 1.8.0 Release Announcement March 21, 2024 - Maximilian Michels. Gyula Fora. Rui Fan. The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.8.0! The release includes many improvements to the operator core, the autoscaler, and introduces new … Continue reading Announcing the Release of Apache Flink 1.19 March 18, 2024 - Lincoln Lee. The Apache Flink PMC is pleased to announce the release of Apache Flink 1.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Apache Flink® — Stateful Computations over Data Streams" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://flink.apache.org/" />
<title>Apache Flink® — Stateful Computations over Data Streams | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/" title="Apache Flink Documentation">

<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/en.search.min.2698f0d1b683dae4d6cb071668b310a55ebcf1c48d11410a015a51d90105b53e.js" integrity="sha256-Jpjw0baD2uTWywcWaLMQpV688cSNEUEKAVpR2QEFtT4="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/index.xml" title="Apache Flink" />
<!--
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>
 
  
    <header>
      


<div class="waves">
  <img src="/img/flink-sine-wave.svg">
</div>

<div class="hero">
  <div class="logo">
    <img src="/img/logo/png/500/flink_squirrel_500.png">
  </div>
  <div class="title">
    <h1>Apache Flink<sup>®</sup></h1>
    <h2>Stateful Computations over Data Streams</h2>
    <p>Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale.</p>
  </div>
</div>
    </header>

    <section>
      


<article class="markdown">
    <div class="panels">
        <div class="title">Flink Capabilities</div>
        <div class="wrapper">
            <div class="panel">
                <div class="icon flink-compatibility-icon"></div>
                <div class="heading">Correctness guarantees</div>
                <div class="body">
                    <p>Exactly-once state consistency</p>
                    <p>Event-time processing</p>
                    <p>Sophisticated late data handling</p>
                </div>
                <div class="button">
                    <a href="/what-is-flink/flink-applications#building-blocks-for-streaming-applications">
                        <span>Learn More <i class="fa fa-chevron-right"></i></span>
                    </a>
                </div>
            </div>
            <div class="panel">
                <div class="icon flink-layered-apis-icon"></div>
                <div class="heading">Layered APIs</div>
                <div class="body">
                    <p>SQL on Stream &amp; Batch Data</p>
                    <p>DataStream API &amp; DataSet API</p>
                    <p>ProcessFunction (Time &amp; State)</p>
                </div>
                <div class="button">
                    <a href="/what-is-flink/flink-applications/#layered-apis">
                        <span>Learn More <i class="fa fa-chevron-right"></i></span>
                    </a>
                </div>
            </div>
            <div class="panel">
                <div class="icon flink-operational-icon"></div>
                <div class="heading">Operational focus</div>
                <div class="body">
                    <p>Flexible deployment</p>
                    <p>High-availability setup</p>
                    <p>Savepoints</p>
                </div>
                <div class="button">
                    <a href="/what-is-flink/flink-operations/">
                        <span>Learn More <i class="fa fa-chevron-right"></i></span>
                    </a>
                </div>
            </div>
            <div class="panel">
                <div class="icon flink-scalability-icon"></div>
                <div class="heading">Scalability</div>
                <div class="body">
                    <p>Scale-out architecture</p>
                    <p>Support for very large state</p>
                    <p>Incremental Checkpoints</p>
                </div>
                <div class="button">
                    <a href="/what-is-flink/flink-architecture/#run-applications-at-any-scale">
                        <span>Learn More <i class="fa fa-chevron-right"></i></span>
                    </a>
                </div>
            </div>
            <div class="panel">
                <div class="icon flink-performance-icon"></div>
                <div class="heading">Performance</div>
                <div class="body">
                    <p>Low latency</p>
                    <p>High throughput</p>
                    <p>In-Memory computing</p>
                </div>
                <div class="button">
                    <a href="/what-is-flink/flink-architecture/#leverage-in-memory-performance">
                        <span>Learn More <i class="fa fa-chevron-right"></i></span>
                    </a>
                </div>
            </div>
        </div>
    </div>
    
    <div class="panels odd">
        <div class="title">Use Cases</div>
        <div class="wrapper">
            <div class="panel">
                <div class="icon flink-event-driven-icon"></div>
                <div class="heading">Event Driven Applications</div>
                <div class="body">
                    <p>An event-driven application is a stateful application that ingests events from one or more event streams and reacts to incoming events by triggering computations, state updates, or external actions.</p>
                </div>
            </div>
            <div class="panel">
                <div class="icon flink-stream-batch-icon"></div>
                <div class="heading">Stream &amp; Batch Analytics</div>
                <div class="body">
                    <p>Analytical jobs extract information and insight from raw data. Apache Flink supports traditional batch queries on bounded data sets and real-time, continuous queries from unbounded, live data streams.</p>
                </div>
            </div>
            <div class="panel">
                <div class="icon flink-pipeline-etl-icon"></div>
                <div class="heading">Data Pipelines &amp; ETL</div>
                <div class="body">
                    <p>Extract-transform-load (ETL) is a common approach to convert and move data between storage systems.</p>
                </div>
            </div>
        </div>
        <div class="wrapper">
            <div class="button">
                <a href="/what-is-flink/use-cases/">
                    <span>Learn more about Flink use cases <i class="fa fa-chevron-right"></i></span>
                </a>
            </div>
        </div>
    </div>
</article>
    
    <!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->


<div class="panels">
  <div class="title">Recent Flink blogs</div>
  <div class="wrapper">
    
        
          <div class="card">
            <div class="heading">Apache Flink Kubernetes Operator 1.8.0 Release Announcement</div>
            <div class="body">
                <p>
                  March 21, 2024 - 
                  
                    Maximilian Michels.
                  
                    Gyula Fora.
                  
                    Rui Fan.
                  
                </p>
                <p class="truncate">
                  The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.8.0!
The release includes many improvements to the operator core, the autoscaler, and introduces new …
                </p>
                <a href="/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/">Continue reading</a>
            </div>
          </div>
        
          <div class="card">
            <div class="heading">Announcing the Release of Apache Flink 1.19</div>
            <div class="body">
                <p>
                  March 18, 2024 - 
                  
                    Lincoln Lee.
                  
                </p>
                <p class="truncate">
                  The Apache Flink PMC is pleased to announce the release of Apache Flink 1.19.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 162 people …
                </p>
                <a href="/2024/03/18/announcing-the-release-of-apache-flink-1.19/">Continue reading</a>
            </div>
          </div>
        
          <div class="card">
            <div class="heading">Apache Flink 1.18.1 Release Announcement</div>
            <div class="body">
                <p>
                  January 19, 2024 - 
                  
                    Jing Ge.
                  
                </p>
                <p class="truncate">
                  The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.18 series.
This release includes 47 bug fixes, vulnerability fixes, and minor improvements for Flink 1.18. …
                </p>
                <a href="/2024/01/19/apache-flink-1.18.1-release-announcement/">Continue reading</a>
            </div>
          </div>
        
    
        
    
  </div>
  <div class="wrapper">
    <div class="button">
        <a href="/posts/">
            <span>Read more blog posts <i class="fa fa-chevron-right"></i></span>
        </a>
    </div>
</div>


</section>

    <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>






