How to design better fault tolerance systems