Is the order of message reception guaranteed?
Yes, but only within one process. If there is a live process and you send it message A and then message B, it’s guaranteed that if message B arrived, message A arrived before it. On the other hand, imagine processes P, Q and R. P sends message A to Q, and then message B to R. There is no guarantee that A arrives before B. (Distributed Erlang would have a pretty tough time if this was required!