In our example, we used two identical components that run simultaneously and monitor each other. However, if one of the components contains a software bug that, under certain conditions, causes the component to malfunction, there's a high chance that another identical component could suffer from this issue too. In safety-critical systems, you may need to develop two completely different implementations. This approach increases the cost and development time but results in the higher reliability of the system.