1. A method comprising: intercepting data communications between a software application and a first database, the data communications comprising commands to update one or more records in the first database, the software application serving multiple tenants sharing a single instance of the software application; dividing the data communications based on tenant; and for each tenant of the multiple tenants: translating the commands to update the one or more records in the first database within the data communications corresponding to the tenant into commands to update one or more records in a second database of a different type than the first database; replaying the translated commands corresponding to the tenant against a copied version of the first database in the second database, causing updating of the one or more records in the second database; tracking performance of the second database in handling the translated commands during the replaying; maintaining serialization and timely execution, among the translated commands corresponding to the tenant, of execution of the translated commands during the replaying; and maintaining synchronization of execution of translated commands between multiple tenants.