Demonstrates dynamically adding and removing nodes from a running dataflow
using dora node add and dora node remove.
Initial topology:
Timer (5 Hz) --> Sender --> value --> Receiver
After adding filter node:
Timer (5 Hz) --> Sender --> value --> Filter --> output --> Receiver
(even only)
sender (sender.py) — Emits incrementing integers on each tick.
receiver (receiver.py) — Logs every value received on any input.
filter (filter.py) — Dynamically added. Passes through only even numbers.
pip install dora-rs pyarrow
dora up
dora start examples/dynamic-add-remove/dataflow.yml --detach --name demoThe receiver logs all integers from the sender.
dora node add --from-yaml examples/dynamic-add-remove/filter-node.yml --dataflow demoThe filter node is registered in the dataflow but not yet wired.
# Connect sender's output to filter's input
dora node connect --dataflow demo sender/value filter/input
# Connect filter's output to receiver
dora node connect --dataflow demo filter/output receiver/filteredNow the receiver sees both:
value(all integers, from sender directly)filtered(even only, from filter via the new mapping)
dora node remove demo filterThe filter node stops. The receiver continues receiving from the sender
on the original value input.
dora stop demo
dora down| Feature | Command |
|---|---|
| Dynamic node addition | dora node add --from-yaml |
| Dynamic node removal | dora node remove |
| Live topology wiring | dora node connect |
| No dataflow restart needed | All changes are live |
| Backward compatible | Existing nodes unaffected |