Error Handling Philosophy
Error handling in concurrent Erlang programs is based on the idea of remote detection and handling of errors. Instead of handling an error in the process where the error occurs, we let the process die and correct the error in some other process.
When we design a fault-tolerant system, we assume that errors will occur, that processes will crash, and that machines will fail. Our job is to detect the errors after they have occurred and correct them if possible. Users of the system should not notice any failures or suffer any loss of service while the error is being fixed.
Since we concentrate on cure rather than prevention, our systems have very little defensive code; instead, we have code to clean up the system after ...