1. A method of performing a failover operation between a first distributed database cluster and a second distributed database cluster, the method comprising: blocking a plurality of software processes from making any new access requests to the first distributed database cluster; completing a current access request to the first distributed database cluster that was initiated by one of the plurality of software processes before the failover operation was initiated; waiting for data to replicate from the first distributed database cluster to the second distributed database cluster, wherein replicating includes any changes to the data from the current access request; and allowing the plurality of software processes to make the new access requests to the second distributed database cluster once the replicating has completed; wherein the software processes each have a database abstraction layer that performs the blocking of the plurality of software processes from making any new access requests to the first distributed database cluster, the completing of a current access request to the first distributed database cluster, and the allowing of the plurality of software processes to make the new access requests to the second distributed database cluster.