An automated method for replacing a currently operating data replication engine with a new data replication engine without application downtime and while preserving target database consistency, the currently operating data replication engine and the new data replication engine replicating source database transactions from an audit trail of a source database in a source system to a target database, the method comprising replacing the currently operating data replication engine with the new data replication engine, the replacing comprising the steps of:
- (a) replicating, by the currently operating data replication engine, source database transactions, including any new source database transactions committed in the audit trail of the source database before the currently operating data replication engine stops replicating;
- (b) starting the new data replication engine;
- (c) joining as a voting participant, by the new data replication engine, all new source database transactions that the currently operating data replication engine has not completed replicating;
- (d) stopping the currently operating data replication engine when all of the source database transactions not joined in step (c) have completed replicating;
- (e) voting, by the new data replication engine, to commit all transactions joined in step (c);
- and
- (f) replicating, by the new data replication engine:
- (i) all source database transactions that are committed in step (e), and
- (ii) all new source database transactions started after the currently operating data replication engine stops.