Skip to Content
DocsBenchmark

Reference · throughput

Pipeline throughput

The ~100K msg/sec on a Raspberry Pi and ~1M on a modern server quoted on the home page come from this 8-node pipeline. Those runs interleave 10 assets. The same flow runs in your browser for a single asset — 900 temperature readings, end-to-end. The number below is yours, measured on your hardware.

Loading benchmark...

What’s Being Measured

900 temperature readings flow through an 8-node pipeline: noise filtering (sanitize, median3), dual exponential smoothing (fast and slow), signal differencing, Page-Hinkley cumulative sum test, persistence confirmation, and a controller that resets the smoothers when a change is detected.

Each iteration creates fresh pipeline state, processes all 900 messages, and discards the output. The benchmark repeats until at least one second of wall-clock time has elapsed, then reports throughput.

This is end-to-end — partition creation, message cloning, state updates, trigger dispatch, and result publishing. No shortcuts.


Methodology

  • Timer: performance.now() — sub-millisecond, monotonic
  • Warm-up: one full pass before measurement (JIT priming)
  • Duration: repeats until ≥1 second elapsed
  • Partitions: single asset (one isolated state)
  • State: fresh partition per iteration
  • Caveats: browser results are typically 30–60% of native Node.js throughput due to JIT differences and sandbox overhead

The reference hardware numbers use the same pipeline and dataset in Node.js v22. Reproduce them from a clone:

git clone https://github.com/winkjs/composer.git cd composer && npm install # Modern-server row — median of three rounds node benchmark/compare.js 10 500 # 10K-asset row node benchmark/run-benchmark.js static 10000 1

The home-page figures round the measured medians down. Your own numbers will vary with CPU, Node.js version, and background load.


Next Steps

  • Hello Flow! — build this kind of pipeline from scratch, one node at a time
  • Gradual Drift — the same fast/slow crossover pattern applied to industrial drift
  • Under the Hood — how messages flow through the closure chain
Last updated on