Various nodes of a distributed system communicate with each other through the exchange of messages.
As the network is not reliable, these messages might get lost. Of course, to cope with this, nodes can retry with the hope that the network will recover at some point and deliver the message.
However, this means that the nodes may deliver messages multiple times because the sender can’t know what really happens.
The following illustration shows what happens when a node doesn’t deliver a message at all.