<!DOCTYPE html>
<html class="no-js" lang="en">
    <head>
	<meta name="generator" content="Hugo 0.92.2" />
        <title>Apache NiFi</title>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="shortcut icon" href="/assets/images/nifi16.ico"/>
        <link rel="stylesheet" href="/stylesheets/app.min.5c81cf462909783b5f788de8312885d5e08d20aa6dd5f6eb9507dd445444a6cb.css">
        <link rel="stylesheet" href="/assets/stylesheets/font-awesome.min.css">
        <script src="/assets/js/modernizr.js"></script>
        <script src="/assets/js/webfontloader.js"></script>
        <script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var baseUri = "//matomo.privacy.apache.org/";
    _paq.push(['setTrackerUrl', baseUri + 'matomo.php']);
    _paq.push(['setSiteId', '28']);
    var trackerElement = document.createElement('script');
    var firstScriptElement = document.getElementsByTagName('script')[0];
    trackerElement.async = true;
    trackerElement.src = baseUri + 'matomo.js';
    var firstScriptElement = document.getElementsByTagName('script')[0];
    if (window.location.host === 'nifi.apache.org') {
      firstScriptElement.parentNode.insertBefore(trackerElement, firstScriptElement);
    }
  })();
</script>
</head>
    <body><div class="sticky contain-to-grid">
    <nav class="top-bar" data-topbar role="navigation">
        <ul class="title-area">
            <li class="name">
                <h1>
                    <a href="index.html">
                        <img id="logo-top-bar" src="/assets/images/nifi-drop-white.svg" alt="Apache NiFi"/>
                    </a>
                </h1>
            </li>
            
            <li class="toggle-topbar menu-icon"><a href="#"><span></span></a></li>
        </ul>

        <section class="top-bar-section">
            
            <ul class="right">
                <li class="has-dropdown">
                    <a href="#">Project</a>
                    <ul class="dropdown">
                        <li><a href="index.html">Home</a></li>
                        <li><a href="https://blogs.apache.org/nifi/"><i class="fa fa-external-link external-link"></i>Apache NiFi Blog</a></li>
                        <li><a href="https://www.apache.org/licenses/"><i class="fa fa-external-link external-link"></i>License</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Documentation</a>
                    <ul class="dropdown">
                        <li><a href="faq.html">FAQ</a></li>
                        <li><a href="videos.html">Videos</a></li>
                        <li><a href="docs.html">NiFi Docs</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI"><i class="fa fa-external-link external-link"></i>Wiki</a></li>
                        <li><a href="security.html">NiFi Security Reports</a></li>
                        <li><a href="registry-security.html">NiFi Registry Security Reports</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Downloads</a>
                    <ul class="dropdown">
                        <li><a href="download.html">Download NiFi</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI/Release+Notes"><i class="fa fa-external-link external-link"></i>Release Notes</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Community</a>
                    <ul class="dropdown">
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide"><i class="fa fa-external-link external-link"></i>Contributor Guide</a></li>
                        <li><a href="mailing_lists.html">Mailing Lists &amp; Chat</a></li>
                        <li><a href="people.html">People</a></li>
                        <li><a href="powered-by-nifi.html">Powered by NiFi</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Development</a>
                    <ul class="dropdown">
                        <li><a href="quickstart.html">Quickstart</a></li>
                        <li><a href="release-guide.html">Release Guide</a></li>
                        <li><a href="gpg.html">GPG Guide</a></li>
                        <li><a href="fds-release-guide.html">FDS Release Guide</a></li>
                        <li><a href="licensing-guide.html">Licensing Guide</a></li>
                        <li><a href="developer-guide.html">Developer Guide</a></li>
                        <li><a href="https://gitbox.apache.org/repos/asf/nifi.git"><i class="fa fa-external-link external-link"></i>Source</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/NIFI"><i class="fa fa-external-link external-link"></i>Issues</a></li>
                        <li><a href="https://github.com/apache/nifi"><i class="fa fa-external-link external-link"></i>GitHub</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">ASF Links</a>
                    <ul class="dropdown">
                        <li><a href="https://www.apache.org"><i class="fa fa-external-link external-link"></i>Apache Software Foundation</a></li>
                        <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html"><i class="fa fa-external-link external-link"></i>Privacy Policy</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html"><i class="fa fa-external-link external-link"></i>Sponsorship</a></li>
                        <li><a href="https://www.apache.org/security/"><i class="fa fa-external-link external-link"></i>Security</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html"><i class="fa fa-external-link external-link"></i>Thanks</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Subprojects</a>
                    <ul class="dropdown">
                        <li><a href="minifi/index.html">MiNiFi</a></li>
                        <li><a href="registry.html">Registry</a></li>
                        <li><a href="fds.html">FDS</a></li>
                    </ul>
                </li>
            </ul>
        </section>
    </nav>
</div>

          <div class="row">
            <div class="large-12 columns">
              <div class="large-space"></div>
	<div class="row">
  <div class="medium-6 large-5 columns">
    <img id="logo" src="/assets/images/apache-nifi-logo.svg" alt="Apache NiFi logo">
    <p class="description">An easy to use, powerful, and reliable system to process and distribute data.</p>
  </div>
  <div class="medium-6 large-7 columns">
    <a class="th" href="/assets/images/flow.png"><img id="flow" src="/assets/images/flow-th.png" alt="NiFi flow"></a>
  </div>
</div>
<h1 id="features">Features</h1>
<p>Apache NiFi supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic.</p>
<p>Apache NiFi includes the following capabilities:</p>
<ul>
<li>Browser-based user interface
<ul>
<li>Seamless experience for design, control, feedback, and monitoring</li>
</ul>
</li>
<li>Data provenance tracking
<ul>
<li>Complete lineage of information from beginning to end</li>
</ul>
</li>
<li>Extensive configuration
<ul>
<li>Loss-tolerant and guaranteed delivery</li>
<li>Low latency and high throughput</li>
<li>Dynamic prioritization</li>
<li>Runtime modification of flow configuration</li>
<li>Back pressure control</li>
</ul>
</li>
<li>Extensible design
<ul>
<li>Component architecture for custom Processors and Services</li>
<li>Rapid development and iterative testing</li>
</ul>
</li>
<li>Secure communication
<ul>
<li>HTTPS with configurable authentication strategies</li>
<li>Multi-tenant authorization and policy management</li>
<li>Standard protocols for encrypted communication including TLS and SSH</li>
</ul>
</li>
</ul>

</div>
          </div>
        <div class="row">
    <div class="large-12 columns footer">
        <a href="https://www.apache.org">
            <img id="asf-logo" alt="Apache Software Foundation" src="/assets/images/asf_logo.png" width="200" style="margin:0px 10px" />
        </a>
        <a  href="https://www.apache.org/events/current-event.html">
            <img src="https://www.apache.org/events/current-event-234x60.png" style="margin:0px 10px" />
        </a>
        <div id="copyright">
            <p>Copyright &#169; 2022 The Apache Software Foundation, Licensed under the <a
                    href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/>Apache, the
                Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software
                Foundation.</p>
        </div>
    </div>
</div>
        <script src="/assets/js/jquery.min.js"></script>
        <script src="/assets/js/foundation.js"></script>
        <script src="/assets/js/app.js"></script>
    </body>
</html>