exists that a software error in one of the processes will corrupt the shared resource. Since eliminating all such software errors for large software systems is an unsolved problem I think that the only realistic way to build large reliable systems is by partitioning the system into independent parallel processes, and by providing mechanisms for monitoring and restarting these processes” - Joe Armstrong
time to the construction of multiple layers of defense against failure…The effect of these measures is to provide a series of shields that normally divert operations away from accidents”