Runs & run data

Every test run records, for every executed node, the entire data envelope that crossed each wire — not a truncated preview, not just the payload. When you debug, you are looking at exactly what the engine saw.

The envelope

Data between nodes travels in an envelope: the working payload plus its content type, metadata, and per-node annotations (timings, per-item stats, deprecation flags). Surfaces that display run data show the whole thing — payload, headers, meta — and the visual JSON editor lets you drill into structures, including JSON that arrives inside a string (an HTTP body, say), which expands inline as a tree.

Per-port capture

Multi-input nodes record each input port separately. A Merge node’s run view has an All / Input 1 / Input 2 selector, so “what exactly arrived on the second input?” has a first-class answer.

Big data stays fast

Large node payloads (hundreds of rows, tens of kilobytes and up) are captured in full but deferred: the run view loads a preview descriptor instantly and fetches windows of rows on demand. A 100,000-item run opens in milliseconds; the data is still all there.

Retention & archived runs

  • The test host keeps a configurable number of recent runs (Admin → Test host; default 25).
  • Run summaries are durable — they survive engine eviction and Nucleus restarts.
  • Saving a workflow embeds its recent runs, so reopening it later still shows ARCHIVED runs you can open and inspect.

Comparing runs

Runs → Compare diffs any two envelopes — same run or across runs — with added/removed/changed highlighting, payload-or-envelope scope, and an only-differences view. JSON held in strings is parsed for field-level diffs, so two HTTP responses diff by body field, not by giant string.

Retry from a node

A failed (or merely suspicious) run can be retried from any node: Flowdrome rebuilds the downstream subgraph and seeds it with the run’s recorded inputs at that node. No re-triggering the webhook, no re-sending the Telegram message — the data you already captured is the fixture.

On the hosts

Deployed apps keep their own run history with the same envelope model (capture budgets are configurable per app). The host aggregates a run ledger across its apps, streams app logs (viewable from the Nucleus through the logs drawer), and reports per-app CPU/memory/disk in its Resources view. Per-node stats — timings, throughput, slowest steps — surface in the Runs view for bottleneck hunting.