Part IV. Tenet 4. Risk: Risk Management for Modern Applications

You cannot possibly manage the risk in your system if you cannot identify the risk in your system.

...but there are also unknown unknowns—the ones we don’t know we don’t know. And if one looks throughout the history of our country and other free countries, it is the latter category that tend to be the difficult ones.

Donald Rumsfeld

All complex systems have risk. It is an inevitable part of all systems. It is impossible to remove all risk from a complex system such as a web application. However, examining your risk and determining how much risk is acceptable is important in keeping your system healthy.

This chapter provides an overview of what risk is and how we can identify it. It then introduces a process called risk management, which helps us to reduce the effect of risk on our applications.

Let’s now revisit the big game example from Chapter 1. Here’s a brief synopsis:

It’s Sunday—the day of the big game.

You’ve invited friends over to watch it on your new TV.

The game is about to start. And...the lights go out and the TV goes dark. The game, for you and your friends, is over.

You call the power company, and they say, “We’re sorry, but we guarantee only 95% availability of our power grid.”

The power company in this example is taking a risk. They are risking that the power won’t go off during a big game.

They even have the risk quantified (it’s 95% likely power will stay on).

The power company knows the types ...

Get Architecting for Scale, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.