So the message-bus produces the messages which create the original information that determines if a transaction has failed or succeeded, the nodes that calculate the results of these inputs are just throwaway instances you can rewind. If someone in LDN wants to update some data in NY, they can do that as long as these nodes have the same idea as the client about the last known version of it. If someone in NY has the same idea just after the record has been updated by LDN and they also want to update the same one, but they haven't yet learned about the new version created by LDN, their transaction will be rejected by the ledger because they will bring an older "last version" for the record. It's a classic optimistic locking setup.
I'm simplifying here, this is slightly more complex in practice, but this is the gist of it.