What Is a Processor in Clockspring?

Modified on Thu, 11 Dec, 2025 at 3:27 PM

Summary

A processor is the basic building block of every Clockspring flow. It performs one focused action, does it reliably, and then routes the resulting FlowFile forward. Everything else in the platform - process groups, scheduling, controller services - exists to support processors and manage how they run.


What a Processor Actually Does

A processor always follows the same pattern:

  1. Receives a FlowFile (unless it generates its own)

  2. Reads or updates content

  3. Reads or updates attributes

  4. Performs a single task
    Examples: call an API, write to a DB, evaluate JSON, route based on metadata.

  5. Transfers the FlowFile to one of its relationships

  6. Repeats based on scheduling rules


Processors don’t do “business flows” by themselves. They do small steps, and you chain them together to build logic.


Why Processors Stay Simple

Clockspring leans on composability. A processor:

  • Does one job, not many.

  • Produces predictable outputs.

  • Lets downstream processors decide what to do next.

This keeps flows maintainable and prevents the “god processor” problem, where one component tries to handle everything.


How Processors Interact With Other Features

Processors rely on several supporting pieces:

Attributes and Content

A processor may read or modify:

  • Content (the FlowFile body)

  • Attributes (key/value metadata)

Attributes often decide routing, API endpoints, SQL tables, file names, and more.  


See more about Attributes and Content here.

Controller Services

Processors don’t store shared config (DB connections, SSL contexts, caches).
They reference controller services, which act as reusable configuration blocks.


See more about Controller Services here.

Parameters

If a processor property supports parameters:

  • Non-sensitive processors can use non-sensitive parameters

  • Sensitive properties require sensitive parameters
    Mismatch = parameter unavailable


See more about Parameters here. 


Scheduling

Processors only run when allowed to run:

  • Timer-driven

  • CRON

  • Event-driven

  • With configurable concurrency
    This determines when each processor performs its task.

Relationships

Processors always send FlowFiles to a relationship:

  • success

  • failure

  • retry

  • no match

  • dynamically created relationships

You must handle or terminate every relationship.


See more about Relationships here.


Processor Behavior in a Cluster

Processors can run on:

  • All nodes (parallel processing)

  • Primary node only (polling, single-writer patterns)

This is set per processor inside the Scheduling tab.


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