The most challenging environment for developers is when there is no predictability to transmissions. In such cases, you could receive a message from any unit at any time.
Imagine a setup with three units at locations 1:1, 1:2, and 1:3. Suppose that 1:1 were sending a rather long message to 1:2, and 1:3 transmitted a message to 1:2 during that long transmission. The challenges for 1:2 include:
Making sure that both messages are received, even if they collide.
Keeping track of which packets were from 1:1 and which were from 1:3.
Making sure that both messages are received is fairly simple. Enabling guaranteed-delivery mode will ensure that the packets are retried after a collision.
The safest way to keep track of which messages came from where is to use unique location codes on each radio and keep the radios in mixed-on mode. Each packet received by 1:2, in our example, would then include not only the message data, but the addressing information in the packet headers.