Apache Nifi
   HOME

TheInfoList



OR:

Apache NiFi is a
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
project from the
Apache Software Foundation The Apache Software Foundation ( ; ASF) is an American nonprofit corporation (classified as a 501(c)(3) organization in the United States) to support a number of open-source software projects. The ASF was formed from a group of developers of the ...
designed to
automate Automation describes a wide range of technologies that reduce human intervention in processes, mainly by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machine ...
the flow of
data Data ( , ) are a collection of discrete or continuous values that convey information, describing the quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted for ...
between
software system A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
s. Leveraging the concept of
extract, transform, load Extract, transform, load (ETL) is a three-phase computing process where data is ''extracted'' from an input source, ''transformed'' (including cleaning), and ''loaded'' into an output data container. The data can be collected from one or mor ...
(ETL), it is based on the "''NiagaraFiles''" software previously developed by the US
National Security Agency The National Security Agency (NSA) is an intelligence agency of the United States Department of Defense, under the authority of the director of national intelligence (DNI). The NSA is responsible for global monitoring, collection, and proces ...
(NSA), which is also the source of a part of its present name – ''NiFi''. It was open-sourced as a part of NSA's technology transfer program in 2014. The software design is based on the
flow-based programming In computer programming, flow-based programming (FBP) is a programming paradigm that defines application software, applications as networks of black box process (computer science), processes, which exchange data across predefined connections by mes ...
model and offers features which prominently include the ability to operate within
cluster may refer to: Science and technology Astronomy * Cluster (spacecraft), constellation of four European Space Agency spacecraft * Cluster II (spacecraft), a European Space Agency mission to study the magnetosphere * Asteroid cluster, a small ...
s, security using TLS encryption,
extensibility Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be t ...
(users can write their own software to extend its abilities) and improved
usability Usability can be described as the capacity of a system to provide a condition for its users to perform the tasks safely, effectively, and efficiently while enjoying the experience. In software engineering, usability is the degree to which a softw ...
features like a
portal Portal may refer to: Arts and entertainment Gaming * ''Portal'' (series), a series of video games developed by Valve ** ''Portal'' (video game), a 2007 video game, the first in the series ** '' Portal 2'', the 2011 sequel ** '' Portal Stori ...
which can be used to view and modify behaviour visually.


Components

NiFi is a
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
program that runs within a
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
running on a server. The prominent components of Nifi are: * Web Server - the
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
-based component used to visually control the software and monitor the events happening within * Flow Controller - serves as the
brain The brain is an organ (biology), organ that serves as the center of the nervous system in all vertebrate and most invertebrate animals. It consists of nervous tissue and is typically located in the head (cephalization), usually near organs for ...
s of NiFi's behaviour. Controls the running of Nifi extensions and schedules allocation of resources for this to happen. * Extensions - various plugins that allow Nifi to interact with various kinds of systems * FlowFile repository - used by NiFi to maintain and track status of the currently active ''FlowFile'' Or the information that NiFi is helping move between systems. * Content repository - the data in transit is maintained here * Provenance repository - data relating to the
provenance Provenance () is the chronology of the ownership, custody or location of a historical object. The term was originally mostly used in relation to works of art, but is now used in similar senses in a wide range of fields, including archaeology, p ...
of the data flowing through the system is maintained here.


See also

* List of Apache Software Foundation projects *
Flow-based programming In computer programming, flow-based programming (FBP) is a programming paradigm that defines application software, applications as networks of black box process (computer science), processes, which exchange data across predefined connections by mes ...
*
Node-RED Node-RED is a flow-based, low-code development tool for visual programming, originally developed by IBM for wiring together hardware devices, APIs and online services as part of the Internet of things. Node-RED provides a web browser-based flow ...


References


External links

* National Security Agency Apache Software Foundation projects Free software programmed in Java (programming language) Software using the Apache license {{Free-software-stub