Triggers
Triggers control when nodes execute in your graph. By default, nodes run whenever data arrives on any input, but you can configure specific inputs as triggers to have more control over execution timing. Understanding triggers is key to building efficient, predictable data pipelines.What is a Trigger?
A trigger is an input port that causes a node to execute when data arrives on it. When data arrives on a trigger input:- Node wakes up - The node’s execution function is called
- Data is received - Data is read from all input ports (not just triggers)
- Code runs - Your node’s code executes with the received data
- Output is sent - Results are sent through output ports
Triggers enable event-driven execution. Nodes don’t run continuously—they wait for data and execute only when triggered.
Why Use Triggers?
Control Execution
Control exactly when nodes run. Configure which inputs trigger execution for precise timing.
Efficient Processing
Nodes only run when needed. No polling or busy-waiting—just event-driven execution.
Synchronization
Synchronize multiple inputs. Wait for data on specific inputs before processing.
Performance
Avoid unnecessary executions. Only process when relevant data arrives.
Default Behavior
By default, all inputs are triggers. This means:- When data arrives on any input, the node executes
- The node reads data from all inputs (not just the one that triggered)
- This is the simplest model and works for most cases
You don’t need to configure triggers for simple cases. The default behavior (all inputs trigger) works well for most pipelines.
Explicit Triggers
You can configure specific inputs as triggers for more control:Setting Triggers
To set an input as a trigger:- Select the node
- Open the properties panel
- Find the input port you want to configure
- Check the “Trigger” checkbox
The input port should turn red and show a ★ star marker, indicating it’s a trigger.
Visual Indicators
Trigger inputs are visually distinct:- Red port circle - Instead of the normal blue
- ★ star marker - Next to the input name
- Properties panel - Shows “Trigger: Yes”
Trigger Patterns
All Inputs Trigger (Default)
All inputs trigger execution:Single Input Triggers
Only one input triggers execution:Multiple Specific Triggers
Some inputs trigger, others don’t:Trigger Use Cases
Clock-Driven Processing
Use a clock input as the only trigger:Synchronized Processing
Wait for data on multiple inputs before processing:Event-Driven Actions
Trigger on events, read configuration from non-trigger inputs:Trigger Behavior Details
Data Reading
When a node is triggered:- Trigger input - Data that arrived (causes execution)
- Other inputs - Latest available data is read
- All inputs - Available to your code
Even if an input isn’t a trigger, your code can still read from it. The node just won’t execute when data arrives on non-trigger inputs alone.
Execution Order
When multiple triggers fire simultaneously:- One execution - The node executes once
- All data read - Data from all trigger inputs is available
- Deterministic - Execution order is consistent
Missing Data
If a trigger fires but other inputs have no data:- Node still executes - Trigger causes execution
- Missing data - Non-trigger inputs may be empty/null
- Your code handles it - Check for data availability in your code
Best Practices
Default is Usually Fine
Most nodes work fine with all inputs as triggers. Only configure explicit triggers when needed.
Clear Intent
Use triggers to make execution intent clear. If a node should run on clock ticks, make clock the only trigger.
Handle Missing Data
Always check for data availability. Non-trigger inputs may not have data when triggers fire.
Document Triggers
Document why specific inputs are triggers. Future you will appreciate the explanation.
Common Patterns
Publisher Pattern
Publisher nodes typically have no inputs (or only configuration inputs):Processor Pattern
Processor nodes typically have all inputs as triggers:Subscriber Pattern
Subscriber nodes typically have all inputs as triggers:Clock-Driven Pattern
Nodes that run on a clock signal:Troubleshooting Triggers
Node never executes
Node never executes
Problem: Node doesn’t run even when data arrives.Solutions:
- Check that at least one input is configured as a trigger
- Verify data is actually arriving (check topic/subscriber)
- Look for errors in node code that might prevent execution
- Check that the graph is running (not just generated)
Node executes too often
Node executes too often
Problem: Node runs more frequently than expected.Solutions:
- Check if multiple inputs are triggers (each can cause execution)
- Verify data arrival rate matches expectations
- Consider using a single trigger input if synchronization isn’t needed
- Check for feedback loops that might cause rapid execution
Missing data on non-trigger inputs
Missing data on non-trigger inputs
Problem: Non-trigger inputs don’t have data when node executes.Solutions:
- This is expected behavior—non-trigger inputs don’t cause execution
- Check data availability in your code before using it
- Consider making the input a trigger if you need it to cause execution
- Use default values or handle missing data gracefully