The Erlang blog post, A few notes on message passing, describes how interprocess message passing works.
The most important takeaway for me is that messages have a defined order.
Messages sent from one process to another appear in the order in which the messages are sent. This allows us to know that when we receive the ‘DOWN’ message, that all messages sent by the process have been received.
This guaranteed message ordering is only for message passing from one single process to another. Messages sent from multiple processes do not have a guaranteed delivery order. Likewise, messages sent from one process to multiple processes do not have a guaranteed delivery order.
All notes and comments are my own opinion. Follow me at @rgacote@genserver.social