It is a requirement to have things published in order
FB_Edge will receive an itterator which in a single scan, it will itterate until it finds an (Edge or Device) which wants to publish. The state machine then goes to PUBLISH and waits until the publisher is done. It then returns to the ITTERATION state to complete (does not restart) if the itteration completes without finding anyone who wants to publish, it ends the state and restarts the ittetration.
The "not restarting the itterator" may be crucial for not favouring a particularly busy device over others. Effectively the itterator is normally a "looper".
Diff: