NiFi Components
NiFi provides several extension points to provide developers the ability to add functionality to the application to meet their needs. The following list provides a high-level description of the most common extension points:
-
Processor
-
The Processor interface is the mechanism through which NiFi exposes access to FlowFiles, their attributes, and their content. The Processor is the basic building block used to comprise a NiFi dataflow. This interface is used to accomplish all of the following tasks:
-
Create FlowFiles
-
Read FlowFile content
-
Write FlowFile content
-
Read FlowFile attributes
-
Update FlowFile attributes
-
Ingest data
-
Egress data
-
Route data
-
Extract data
-
Modify data
-
-
-
ReportingTask
-
The ReportingTask interface is a mechanism that NiFi exposes to allow metrics, monitoring information, and internal NiFi state to be published to external endpoints, such as log files, e-mail, and remote web services.
-
-
ControllerService
-
A ControllerService provides shared state and functionality across Processors, other ControllerServices, and ReportingTasks within a single JVM. An example use case may include loading a very large dataset into memory. By performing this work in a ControllerService, the data can be loaded once and be exposed to all Processors via this service, rather than requiring many different Processors to load the dataset themselves.
-
-
FlowFilePrioritizer
-
The FlowFilePrioritizer interface provides a mechanism by which FlowFiles in a queue can be prioritized, or sorted, so that the FlowFiles can be processed in an order that is most effective for a particular use case.
-
-
AuthorityProvider
-
An AuthorityProvider is responsible for determining which privileges and roles, if any, a given user should be granted.
-