In this chapter, we explored how processes are the key for concurrency and fault tolerance in Elixir applications. Let's wrap up this chapter by looking at the most important points:
- Inside the BEAM, processes are completely isolated from one another, and share no memory between them.
- A process is very lightweight in terms of resources, allowing the creation of millions of processes in a single machine.
- Processes communicate with each other via asynchronous message passing.
- A process may run in a loop by using endless recursion. Also, it can keep state by using arguments on the recursion.
- A process can detect the crash of another process using links or monitors. Links are always bidirectional, and, by default, upon receiving an exit signal, will cause all linked processes to terminate as well. Monitors are unidirectional, and the monitoring process will receive a...