Nifi wraps each file with a &quot;flowfile&quot;, which contains metadata about the flow. You can add to and change those variables as the flow goes on using the &quot;UpdateAttribute&quot; processor, and then route based on those attributes.<p>Each processor in the flow receives the full flow file, so each step along the way gets the &quot;state&quot; in full.  This helps in case something interrupts the flow - you can resume an hour or a day later.