Sending a message reliably is not as easy it seems. This is broadcast communications.
Runner can deliver the message to only one receipient at a time.
We can expect an acknowledgement return message, sent from the recipient back to the sender via the runner. We can wait for a certain period of time to receive the acknowledgement . Each symbol can represent a complete message or symbols can be composed to construct arbitrary messages. A signaling convention is needed to ensure that the receiver has seen the symbol being sent before the next symbol can be sent. This is called flow control .