A relay or intermediate server is used to balance the network and resource load. Relays are present at multiple levels depending on the network topology to forward the down-going data/actions to their own lower level. They also collect up-going data/actions which they forward to their upper level based on a predefined schedule allocation. Each relay records a list of transactions and is configured for a number of retries before abandoning and informing the next higher level on error. Relays are basically clients with the extra feature of forwarding data in both upstream and downstream directions for software distribution and other operations to execute.