Fault tolerant operation is disclosed for a primary match server of a
financial exchange using an active copy-cat instance, a.k.a. backup match
server, that mirrors operations in the primary match server, but only
after those operations have successfully completed in the primary match
server. Fault tolerant logic monitors inputs and outputs of the primary
match server and gates those inputs to the backup match server once a
given input has been processed. The outputs of the backup match server
are then compared with the outputs of the primary match server to ensure
correct operation. The disclosed embodiments further relate to fault
tolerant failover mechanism allowing the backup match server to take over
for the primary match server in a fault situation wherein the primary and
backup match servers are loosely coupled, i.e. they need not be aware
that they are operating in a fault tolerant environment. As such, the
primary match server need not be specifically designed or programmed to
interact with the fault tolerant mechanisms. Instead, the primary match
server need only be designed to adhere to specific basic operating
guidelines and shut itself down when it cannot do so. By externally
controlling the ability of the primary match server to successfully
adhere to its operating guidelines, the fault tolerant mechanisms of the
disclosed embodiments can recognize error conditions and easily failover
from the primary match server to the backup match server.