Epistemic Status: Sprouting - This is a zettelkasten-style card about a concept I’m interested in remembering.
How Erlang manages message delivery between processes can have an effect on how you design systems.
Message delivery is guaranteed, assuming the processes exist and are available, and between any two processes, the messages will be received in the order they were sent. Beyond that, all bets are off.
From this mailing list post…
One magical side effect of these strict guarantees AND strict ambiguities is that right from the start of a project in Erlang, even one running on a local system, you wind up staring the CAP theorem straight in the face. This tends to result in a better understanding of the constraints introduced by concurrency and distribution because they are present in the mind of every developer right from the start.