Offloading Queues in Clockspring

Modified on Thu, 11 Dec, 2025 at 5:18 PM

Summary

Offloading moves FlowFiles from one node to other nodes in the cluster. It is rarely needed during normal operations because a graceful shutdown already drains queued data automatically. Manual offload is available if you want to proactively empty a node before stopping it or if you are removing a node from the cluster.


1. What Offloading Does

Offloading performs a controlled transfer of existing FlowFiles from one node to other nodes in the cluster:

  1. Reads the FlowFiles in that node’s portion of a queue

  2. Transfers them to healthy nodes

  3. Preserves FlowFile content and attributes

  4. Allows the remaining nodes to continue processing

Offload affects only the selected queue and only the FlowFiles currently in it.


2. Automatic Offload During Graceful Shutdown

When a node is stopped cleanly:

  • Clockspring automatically offloads all FlowFiles on that node

  • Other nodes absorb the queued work

  • No FlowFiles remain stranded

  • No manual offload is required for maintenance

This covers:

  • patches

  • reboots

  • application upgrades

  • controlled restarts


In almost all maintenance scenarios, just stop the service - Clockspring drains it for you.


3. When You May Want to Manually Offload

Manual offload is optional, not required, but useful when you want to intentionally drain a node before stopping it.

Common reasons:

A. Draining a node in advance of maintenance

You want the node empty before you stop the service, so shutdown is fast and predictable.

B. Removing a node from the cluster

If a node will not rejoin the cluster, you must offload to ensure no FlowFiles remain tied to it.

C. Operational control

Some admins prefer to see queues drain before initiating maintenance.

These are valid, but not required.


4. When Offloading Does NOT Happen Automatically

If a node is stopped unexpectedly (crash, power loss, forced kill):

  • FlowFiles on that node stay on disk

  • They are not redistributed

  • Other nodes cannot process them

  • The UI still shows total queue counts

No data is lost.

FlowFiles remain intact on the node’s repositories.

When the node comes back online:

  • All its FlowFiles become available again

  • Processing resumes exactly where it left off

This is a fundamental guarantee of Clockspring’s cluster model.


5. What Offload Does NOT Do

Offload does not:

  • balance ongoing workload

  • fix upstream distribution problems

  • improve throughput

  • continuously redistribute data

  • act as a replacement for load balancing

  • modify flow design

Offload is a maintenance tool, not an operational mechanism.

If you need even distribution, use queue load balancing.

If a node is overloaded, the answer is flow design, not offload.


6. Practical Guidance

Use manual offload when:

  • You want a node empty before maintenance

  • You want to control timing rather than rely on shutdown behavior

  • A node will be removed from the cluster

Do not use manual offload when:

  • You are simply restarting and don’t care if shutdown drains normally

  • You are trying to fix uneven processing

  • A node crashed and will return soon

  • You want “better balance” — offload won’t provide it


Related Articles

  • How a Clockspring Cluster Works

  • Queue Load Balancing

  • Execution Node: All Nodes vs Primary Node

  • Node Loss, Failover, and Recovery

  • Designing Cluster-Safe Flows

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article