Summary
Relationships define where FlowFiles can go. Connections determine how they get there. This article explains how to create, modify, and troubleshoot connections, including dynamic routes, funnels, duplicate connections, dead connections, and restrictions around running processors.
Connections link relationships to downstream components
A relationship becomes active only when you connect it to another component:
This creates a queue and establishes the routing path.
If a relationship is not connected or terminated, the processor is invalid.
You cannot move a relationship connected to a running processor
This rule surprises users the first time they hit it.
To modify a connection:
Stop the destination processor (red square)
Create or adjust the connection
Start the processor again
This prevents mid-execution changes that would disrupt FlowFile ordering or state.
A single relationship can have multiple connections
You can send the same FlowFile to multiple downstream processors by drawing multiple connections.
Example:
A single FlowFile routed to success becomes two FlowFiles, one for each queue.
Uses include:
Parallel processing
Auditing
Logging
Sending data to analytics and operational paths simultaneously
No special configuration required - duplication is automatic.
Editing Connection Properties (Name, Backpressure, Bendpoints)
Connections aren’t just lines on the canvas - each one has its own configuration panel where you can control how data flows across it.
Right-click a connection → Configure.
You can adjust:
1. Connection Name
You can assign a custom name to any connection.
This is especially helpful when a processor sends different paths into multiple downstream branches and you want clearer labeling.
Examples:
success → branch Asuccess → metricsfailure → dead letter queue
Names improve readability but do not affect routing behavior.
2. Backpressure on the Connection
Each connection has its own backpressure thresholds:
Object count
Data size
When either threshold is exceeded:
The queue stops accepting more FlowFiles
The upstream processor becomes backpressured
Flow slows or halts based on processor scheduling
Connection-level backpressure is one of the main tools for controlling flow behavior.
3. Bendpoints (Adjusting Line Paths)
You can reshape connection lines to keep the canvas readable.
Double click on the connection line to add a bendpoint that can be dragged around the canvas. To remove a bendpoint, simply double click on it.
This is purely visual but extremely helpful in larger flows to avoid crossing lines or hiding relationships behind components.
4. Prioritizers (Optional)
Connections support prioritizers such as:
First In First Out
Largest FlowFile First
Custom attribute-based prioritization
Most flows don’t need this, but it’s important in ingestion or throttling scenarios.
Funnels as temporary or organizational landing spots
Funnels are extremely useful when building or rearranging a flow.
Reasons to use a funnel:
Temporary parking spot for a relationship until you finish building downstream logic
Helps manage many incoming edges cleanly
Lets you consolidate multiple relationships into a single output
Allows you to connect relationships before downstream processors exist
Common pattern during design:
Then, once the downstream logic is ready, connect from the funnel to the new component.
Dynamic relationships don’t appear until you “Apply” changes
Processors like RouteOnAttribute, RouteOnContent, and others generate dynamic relationships based on configuration.
These relationships:
Do not appear in the UI while editing
Only appear after clicking Apply
Must then be connected or terminated like any other relationship
If you create a rule called high_value, a new relationship named high_value will appear only after saving.
Removing a dynamic relationship creates a “dead” connection (dotted line)
If you remove or rename a rule in a processor, the old relationship disappears from the processor but still exists on the canvas as a dotted connection.
This indicates:
The connection references a relationship that no longer exists
Any downstream processors relying on that connection become unreachable
Fix by deleting the dotted connection or re-adding a rule that produces the same relationship name.
Editing connections may invalidate processors
Any of these actions can cause temporary invalidation:
Removing a connection upstream
Changing relationship names
Deleting downstream processors
Disconnecting required relationships without terminating them
Clockspring immediately validates the graph to prevent data loss.
Quick rules to remember
You must stop a processor before connecting to or from it.
One relationship can feed multiple connections, producing duplicate FlowFiles.
Funnels are great for temporary routing during flow design.
Dynamic routes appear only after applying changes.
Removing dynamic routes leaves dotted “dead” connections.
All connections must be resolved for the processor to start.
Related Articles
Relationships: What They Are and How They Work
Queues and Backpressure
Retries, Yielding, and Penalization
Terminating Relationships
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article