Graceful degradation

Seth Godin wrote about the recent tornado in Brooklyn:

"…Bottom line: the first thing to rehearse is your communication strategy. You can't predict weird events, but you can get really good at alerting people when they happen."

The web application parallel to this idea is – design for graceful degradation first.

Take it as an absolute given that your service is going to fail, and it will do so at the most unexpected times and places. No matter how great your code is, and how redundant your data center is, and how many thousands of man years QA spent bullet-proofing your system, and how your NOC guys are sitting in the cage and holding your server's hands 24/7 for good karma – take my word – your app will go down, guaranteed.

Once the software is written, it's very difficult to go back to existing code and find all the places where you might want to cover for possible outages. So the way to go is to get into the habit of designing wrapper codes that fail elegantly before *any* single piece of functionality is developed into those wrappers.

Gracefully degrading wrappers = a good night's sleep, which is priceless.

Share this post!