Erlang’s let-it-crash philosophy – applicable elsewhere?

It’s applicable everywhere. Whether or not you write your software in a “let it crash” pattern, it will crash anyway, e.g., when hardware fails. “Let it crash” applies anywhere where you need to withstand reality. Quoth James Hamilton:

If a hardware failure requires any immediate administrative action, the service simply won’t scale cost-effectively and reliably. The entire service must be capable of surviving failure without human administrative interaction. Failure recovery must be a very simple path and that path must be tested frequently. Armando Fox of Stanford has argued that the best way to test the failure path is never to shut the service down normally. Just hard-fail it. This sounds counter-intuitive, but if the failure paths aren’t frequently used, they won’t work when needed.

This doesn’t precisely mean “never use guards,” though. But don’t be afraid to crash!

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)