logoalt Hacker News

stcglast Sunday at 12:01 PM2 repliesview on HN

"Let it crash" is a sentence that gets attention. It makes a person want to know more about it, as it sounds controversial and different. "Let it heal" doesn't have that.


Replies

jonhohlelast Sunday at 2:07 PM

It also has a deeper philosophical meaning of unexpected software bugs should be noisy and obvious instead of causing silently corruption or misleading user experience. If monitoring doesn’t catch the failure, customers will and it can be fixed right away (whether it’s the software, a hardware error, dependency issue, etc.).

A web service returning a 500 error code is a lot more obvious than a 200 with an invalid payload. A crashed app with a stack trace is easier to debug and will cause more user feedback than an app than hangs in a retry loop.

When I had to deal with these things in the Java world, it meant not blindly handling or swallowing exceptions that business code had no business caring about. Does your account management code really think it knows how to properly handle an InterruptedException? Unless your answer is rollback and reset the interrupted flag it’s probably wrong. Can’t write a test for a particular failure scenario? That better blow up loudly with enough context that makes it possible to understand the error condition (and then write a test for it).

reddit_clonelast Monday at 6:35 PM

I have always felt 'Let it crash' is an unfortunate turn of phrase that gets a lot of negative attention.

A 'crash' in most other language/ecosystem means likely a catastrophic failure of the application, ending in a core dump.

Erlang's error handling is way more nuanced than that blunt phrase indicates.