This document provides an overview and user guide for Apache NiFi. It discusses what NiFi is, its architecture and data flow, common terms, and how to operate and design data flows in NiFi. The guide explains how to debug NiFi and test data flows. It also provides tips on processor utilization, routing strategies, and using the NiFi Expression Language. Examples of existing NiFi processors and learning steps are outlined.