A computer-implemented method comprising: receiving a transaction request for a plurality of database services of a plurality of microservices , each microservice including a corresponding database service and a local transaction manager of the database service ; submitting to each local transaction manager a local commit request corresponding to the transaction request for the database service with which the respective local transaction manager is associated; receiving a plurality of local commit decisions of the local commit requests from each of the local transaction managers , wherein the local commit decision from a particular one of the local transaction managers is based on a conflict check using an Optimistic Concurrency Control Protocol and a local cache of the local transaction manager storing logs of committed transactions performed on the database server of the database service with which the local transaction manager is associated; generating a physical commit request to each of the local transaction managers based on the local commit decisions and a global commit decision, said global commit decision being generated based on the plurality of local commit decisions; communicating the global commit decision to the local transaction managers, each of the local transaction managers being configured to submit the physical commit request to a database server of the database service with which the local transaction manager is associated based on the global commit decision; persisting, by each of the local transaction managers , a log of committed transactions for the corresponding local transaction manager based on the order of transaction commit; and deterministically applying, by each of the local transaction managers , the committed transactions from the log to the database server corresponding to the local transaction manager in the order of the log. receiving a transaction request for a plurality of database services of a plurality of microservices , each microservice including a corresponding database service and a local transaction manager of the database service ; submitting to each local transaction manager a local commit request corresponding to the transaction request for the database service with which the respective local transaction manager is associated; receiving a plurality of local commit decisions of the local commit requests from each of the local transaction managers , wherein the local commit decision from a particular one of the local transaction managers is based on a conflict check using an Optimistic Concurrency Control Protocol and a local cache of the local transaction manager storing logs of committed transactions performed on the database server of the database service with which the local transaction manager is associated; generating a physical commit request to each of the local transaction managers based on the local commit decisions and a global commit decision, said global commit decision being generated based on the plurality of local commit decisions; communicating the global commit decision to the local transaction managers, each of the local transaction managers being configured to submit the physical commit request to a database server of the database service with which the local transaction manager is associated based on the global commit decision; persisting, by each of the local transaction managers , a log of committed transactions for the corresponding local transaction manager based on the order of transaction commit; and deterministically applying, by each of the local transaction managers , the committed transactions from the log to the database server corresponding to the local transaction manager in the order of the log. <EOS>