Adding Functionality to Apache NiFi
Also available as:
PDF
loading table of contents...

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 flow files, 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 flow files 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 AuthorityProvide is responsible for determining which privileges and roles, if any, a given user should be granted.