I have designed/coded two redundant systems before.<p>First one is super complex redundant router done by 100+ engineers. All TCP states, BGP states, complete configurations were replicated to backup CPU. If the primary failed, power off, etc, the standby will take over, etc. When the failed unit comes backup, it become the new stanby. Demo works fine, but the company sold just 1 system for $200K. The company did sold for four hundred millions. It paid off my mortgage.<p>2nd is relatively simple done by me in 3 weeks including testing, etc. It is a system convert 48 channels digital MPEG streams to analog NTSC signals for analog cable plant such as Comcast. Xilinx power PC running linux. All configurations were sync. Auto switch over on power off, network disconnect, etc. The system can detect all failure conditions in 50 milliseconds. Very cool to demo - if you blink your eye and you will miss the system failure over event. Support in service SW upgrade - update backup to new SW, sync config over, force switch the primary and update the new backup to new SW with ZERO downtime.<p>The product was very successful - only one firmware bug found after two years in the field. Sold $100 millions+ to various cable companies. But the VC air drop a "professional CEO" and "scale" the company from 16 people to 300+ people. Did two more rounds and manage to burn the company to the ground and sold it for pennies.<p>Redundant system design are not that hard and can be simple. It is best to remember KISS - "Keep It Simple Stupid".