Sunday, January 24, 2010

Frangible Systems

frangible: capable of being broken; easily broken


[source] Systems design can be fragile. When I ran across this Word of the Day from Dictionary.com, I was reminded of this. Frangible systems are difficult to maintain and don't react well to the constant change which is inevitable in many systems. One element that I have been thinking about recently is design that makes systems fragile or easily broken. One design element that I think contributes to the fragility of a system is its complexity.


Systems by their nature can be complex. They require complex interactions, complex computations, complex manipulations. But we add to this native complexity by adding system complexity in an attempt to make them stable. From my experience this system complexity can actually add to the fragility of a system.


I work in a 24/7 environment where vital things are occurring every 5 minutes around the clock. The systems require constant up time. But they can tend to be fragile, I think, because of the very design to achieve this. We cluster everything and have hot fallback systems. It works most of the time, but appears to contribute to the frangible nature of our systems some of the time.


The point here is to make systems as simple as possible to add to their stability. Don't over engineer your systems in an attempt to make them bulletproof. Continually examine each element of your design and ask the question:


Can I make it simpler?


Reduce code, reduce systems, reduce complexity to the point where it achieves the goal in the simplest possible manner.


An speaking of the goal, look at the assumptions where also. Does this system really have to be up 24/7 without interruption? Can the system suffer some downtime, say for preventative maintenance? Is an outage because of a problem of some length acceptable if it only occurs once each year?


My mantra is simple, simple, simple. Make a system as simple as possible to achieve the realistic goals set for it.

No comments:

Post a Comment