Skip to main content
Version: 2.0
Buffer Node parameters

Buffer node configuration

Buffer Node

Overview

The Buffer Node accumulates incoming payloads in a FIFO queue and automatically flushes them when either the item count or the serialized byte footprint crosses a configured threshold. Because the node persists its state between executions, it is well suited for batch processing, load smoothing, and integrating with downstream systems that expect grouped payloads instead of single records.


Core Functionality

What It Does

Buffer brings structure and resiliency to high-throughput pipelines by enabling:

1. Dual Flush Thresholds
Define Max Count and Max Bytes limits. When either capacity is reached, the node emits the buffered collection through the out output port and resets its internal state.

2. Smart Overflow Handling
Choose how to respond when a single item exceeds Max Bytes: reject it, emit it immediately as a single-item batch, or use the Emit Solo alias for Passthrough behavior.

3. Automatic Item Normalization
Scalar values are wrapped into batches of one, while arrays are flattened into individual entries. Each item is serialized to JSON to determine its byte cost, ensuring predictable sizing regardless of the original payload shape.

4. Stateful Execution
Buffer contents (buffer) and byte totals (total_bytes) persist between runs. Internal locking protects the queue during concurrent executions so multiple workers can interact safely.


Configuration Reference

Parameters

ParameterTypeDefaultRequiredConstraintsDescription
Max Countnumber100No1--10,000Item count threshold for auto-flush.
Max Bytesnumber0No0--25 MB (0 = disabled)Size threshold in bytes.
Overflowselect"reject"Noreject / passthrough / emitSoloWhat happens when a single item exceeds maxBytes.
Modeselect"collect"Nocollect / slidingcollect: Flush and start fresh. sliding: Sliding window.
Size Fieldstring""NoExpression that returns a numberDynamic batch size from input data.
Max Sizenumber500No1--500Safety cap for dynamic size.

Settings

SettingOptionsDefaultDescription
Timeout (seconds)numberPipeline defaultMaximum execution time for this node (1--600).
Retry on TimeoutPipeline Default / Enabled / DisabledPipeline DefaultWhether to retry on timeout.
Retry on FailPipeline Default / Enabled / DisabledPipeline DefaultWhether to retry on failure. When Enabled, shows Advanced Retry Configuration.
On ErrorPipeline Default / Stop Pipeline / Continue ExecutionPipeline DefaultBehavior when node fails after all retries.

Advanced Retry Configuration

Only visible when Retry on Fail is set to Enabled.

FieldTypeDefaultRangeDescription
Max Attemptsnumber31--10Maximum retry attempts.
Initial Delay (ms)number1000100--30,000Wait before first retry.
Max Delay (ms)number1200001,000--300,000Upper bound for backoff delay.
Multipliernumber2.01.0--5.0Exponential backoff multiplier.
Jitter Factornumber0.10--0.5Random jitter.

Usage Examples

Example 1: Flush 50 Sensor Readings or 256 KB

FieldValue
Max Count50
Max Bytes262144
Overflow Modereject
Retry on FailEnabled
On ErrorContinue Execution

The buffer emits as soon as it holds 50 sensor readings or their serialized size exceeds roughly 256 KB, keeping downstream batch APIs within limits.

Example 2: Pass Through Oversized Alerts

FieldValue
Max Count200
Max Bytes524288
Overflow ModePassthrough
NotesLarge alerts must bypass batching.

Any alert larger than 512 KB is forwarded immediately as a one-item batch, while other payloads continue accumulating until thresholds are met.

Example 3: Inspect Buffer State During a Run

FieldValue
Manual Actionget
Example Response{ "bufferCount": 37, "totalBytes": 81234, "overflowMode": "reject" }
Display Note in Pipelinetrue

Triggering get lets operators view queued orders (e.g., {"id":"A-100","amount":125.4}) without flushing them, confirming that thresholds are tuned correctly.