Verified for the 2025 AP Computer Science Principles exam•Citation:
In the last guide, 4.1 The Internet, we mentioned that information goes through the internet in data streams, broken up into packets, and that there are many different paths that packets could take in order to reach its final destination. One of the advantages of this system is that if a node (a device on the network) on the route is down or a connection isn't working, the packets can still reach their destination through another path.
This is an example of fault tolerance.
If a system is fault tolerant, it can function properly even in the event of one part failing.
Image source: Thomas Kinto on UnsplashA non-digital example of fault tolerance is the road system in your city. There are usually multiple paths to get from one place in town to another. If there's a crash or construction on one road and it's blocked, you can still get to your destination. The road system can function even if one road stops operating, so we would call it (relatively) fault tolerant.
Another example would be having a backup generator in your house or multiple heaters in an apartment. In both of these cases, the power or heating system in question can continue to work even if a part (one of the generators or one of the heaters) fails.
Fault tolerance is important for AP CSP because the internet was designed to be fault tolerant. It does this primarily through redundancy.
One of the major aspects of a fault-tolerant system is the presence of redundancy. Redundancy is defined by College Board as the inclusion of extra components that can be used to mitigate failure of a system if other components fail. Unlike what your English teacher told you about redundancy in your essays, redundancy in the digital world is beneficial and helps keep everything running.
In the opening example, redundancy took the form of having multiple paths for one packet to be able to go through. (This is often literally having multiple physical cables and/or routers.) However, implementing redundancy takes several forms.
❗ Load balancing and failover solutions won't be on the AP CSP test. They're just examples!
Fault tolerance helps reduce at least two vulnerabilities to failure found in digital systems: hardware malfunctions and cyberattacks. It also makes the system more scalable.
Fault tolerance keeps the system from shutting down. When the system in question is, say, the transatlantic communications system between Europe and the US, shutdowns could be very harmful for people's use of the system, the systems that rely on that system, and society at large.
Developing fault tolerance requires more resources than would be needed otherwise. For example, more cables and routers are needed for a fault-tolerant routing system than one that isn't because there need to be all those additional paths.
It can be quite expensive in materials, contruction cost and maintainence to build these new resources, and places with fewer resources can face more vulnerable computing networks as a result.
Not everything can be duplicated or made fault-tolerant due to cost and design concerns. (You can't have two steering wheels on a car, for example!) Developers often have to pick and choose what they need to develop fault tolerance for.