1. A method of performing a transaction in a distributed system, the method comprising: obtaining, by a first computing node, a first command and a second command that define functions to be performed in the transaction, wherein the first command includes dependency information that comprises a first local dependency that must be satisfied before the first command is executed and a first remote dependency that must be satisfied before the first command is executed, and wherein the second command includes dependency information that comprises a second dependency that must be satisfied before the second command is executed; holding the first command in a waiting state until the first local dependency is satisfied; determining that the second dependency is satisfied; causing the execution of the second command; determining that the first local dependency is satisfied and that there is a first remote dependency that must be satisfied; transmitting the first command to a second computing node for asynchronous execution, the second computing node to determine when to perform the functions defined by the first command based on the first remote dependency included in the first command; and determining that the first command has been executed at the second computing node.