Skip to main content

HotLoop Flow

HotLoop Flow logo

A visual flow engine for the plant floor, written in Go.

Category: HotLoop

HotLoop Flow is a visual flow engine like Node-RED, built on a different runtime: one static binary in a 25.1 MB image, a ceiling on every queue, and a hard refusal to start without authentication. Both are in the App Store, and both read the same flow files, so you pick the one that fits the job.

What it does​

  • Loads Node-RED v1 flows.json files, and saves them back byte for byte when nothing changed.
  • Ships 51 node types: everything Node-RED ships that isn't a community node, plus scan and netinfo for inventorying an OT segment.
  • Gives every node its own goroutine, so one heavy Function node costs a core instead of freezing the editor and every other flow.
  • Bounds every queue, with a per-node policy for what happens when one fills, and counts every dropped message where Prometheus can see it.
  • Exports Prometheus metrics per node at /metrics, with no sidecar.

HotLoop Flow or Node-RED​

Pick HotLoop Flow when footprint and guardrails matter most: a small edge node, bounded queues you can alert on, authentication you can't forget to turn on, and an exec node that's off until an operator allowlists commands.

Pick Node-RED when a flow needs something HotLoop Flow doesn't have yet:

  • Community nodes. They're npm packages that need Node.js, so they only run on Node-RED.
  • JSONata and cron-style Inject schedules. HotLoop Flow refuses JSONata, and only interval and on-startup injection fire.
  • Partial deploys. A HotLoop Flow deploy restarts every node, so MQTT connections drop and reconnect.
  • Persistent context. HotLoop Flow keeps flow and global context in memory only, so it's gone when the pod restarts.

Not sure which one an existing flow needs? Run hotloop-flow import flows.json. It sorts every node type in the file into runs, partly runs (with what's missing spelled out) and doesn't run.

What HotLoop Flow has and hasn't built yet is in its README.

Running on EmberNet​

  • HotLoop Flow can run as many instances per node as you need. Each instance is its own release with its own flows. Don't scale one release's replicas, because two pods would both subscribe and both write.
  • The default resource preset requests 10m of CPU and 64Mi of memory, so it fits on a small edge node.
  • Three network modes: cluster (the default), host for the node's own interfaces and broadcast domain (one per node, on port 1880 unless you set another), and macvlan for its own address on the OT VLAN (needs Multus).
  • The chart generates the admin password and the credential secret on first install and keeps both across upgrades. If the credential secret ever changed, every stored broker password in every flow would be unreadable.

Licensing​

HotLoop Flow is Apache-2.0, free for everyone, businesses included, with nothing to sign up for. That's different from the rest of HotLoop.

Learn more​

EmberNet packages and deploys this application; HotLoop Flow is developed by HotLoop. It is an independent implementation and contains no Node-RED source. Product names and logos are trademarks of their respective owners.