[erlang-questions] Delivery of messages
Thu Feb 23 19:24:04 CET 2012
On 23 February 2012 12:49, P.H.Welch <P.H.Welch@REDACTED> wrote:
> If process P sends a message to process Q and:
> * neither process crashes;
> * Q commits to receive P's message;
> * the cores/processors/computers on which P and Q are running
> do not crash or get turned off;
> * no part of the communication fabric delivering the message
> crashes or gets turned off;
> is Q guaranteed to receive the message? (1)
Sort of yes. You are guaranteed to eventually get the message or have
an error somewhere (or both). There is no guarantee of the timespan
that this will occur in though, so there might be a situation where
heat death of the universe occurs before you get the message.
Potentially, but not likely.
You are guaranteed order of messages between any pair of processes.
So if message two has reached the receiver you are guaranteed that
message one reached the receiver before that.
In most situations a guarantee of order is good enough.
More information about the erlang-questions