Obligatory discussion about distributed computing
 | "Distributed computing is hard" |  |
 | --Everyone |
This quote, of course, is a bit hyperbolic. It's not necessarily the case that distributed computing is hard, it's mainly that there are far more edge cases and other assumptions we must shed before being able to proceed. This section won't attempt to be an exhaustive list of concepts and topics in distributed computing, but it will discuss what is most applicable to understanding OTP and developing distributed applications with Elixir.
Fallacies of distributed computing
Let's briefly discuss the 8 fallacies of distributed computing. By understanding the (false) assumptions of distributed computing, we can understand the assumptions made by Elixir and OTP, and how to leverage them.
The network is reliable
Often when designing distributed applications, developers will assume that the network will always be available and therefore, they will place themselves into strange and interesting failure modes...