How does proxies push commits to Logs in version order?

Hi, while reading the architecture doc, I was unable to understand how would the proxies ensure a (global) version-order commit for tLogs: logs receive commits from the proxy in version order.

There would be multiple proxies, each having some unique commit version number for the transaction it is handling; many of these transactions could be going to many of common tLogs; so how would proxy ensure that tLogs receive the commits in version-order? Do proxies inter-communicate before sending each transaction to tlogs, and wait if there is an earlier versioned transaction (on any of the proxies) that is pending ack from all tlogs?

Apologies, if this is already explained somewhere, and I have overlooked it.

I believe the way this works is that the proxies each get versions for their commits from the singleton master, who guarantees that the versions it hands out are ordered. Included in the response from the master is the previous version that the master handed out, so that a proxy knows the version of the commit that immediately precedes the one it is trying to submit.

When a proxy sends a commit to the transaction logs, it includes this previous version in the request, and a log will (asynchronously) block on a request until it has received and sufficiently processed the previous request.

Step 4 in

(Which is technically wrong, as 3 and 4 are backwards in that image. The resolver needs to know the same commit order as the transaction logs.)