A method is provided for performing transaction processing in a system that includes a transaction distributor and a plurality of nodes. Each of the nodes include a processor, an application executing in the processor, and an instance of a database used by the application. Each node executes transactions. The transaction distributor selects at least two of the nodes to receive the same request to process a transaction, and the processor at each of the at least two nodes executes the same request to process a transaction. Each of the at least two nodes replicates to one or more other nodes in the system the steps and operations of the transactions up until a transaction END step. The processor at the one or more other nodes compares the replicated steps and operations of the transactions that were received from each of the at least two nodes and performs a transaction END step for the replicated transaction at the one or more other nodes in the system by either executing a COMMIT when the result of the comparison indicates that the replicated steps and operations of the replicated transactions match each other, or executing an ABORT when the result of the comparison indicates that the replicated steps and operations of the replicated transactions do not match each other.