Duplication: for protection against random, independent component failures - Diversity: for protection against common-mode failures that would affect all identical copies - Modularity: for containing failures so they do not cascade through the system - Slack: for providing surge capacity and respons