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 FlowFile, 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 FlowFile 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.