1. A method, comprising: at a client device, receiving user input that performs a change that requires an operation to be performed on a server apparatus; in response to the user input, perform the following steps on the client device: generating a request for the operation to be performed on the server apparatus; generating a data structure that includes a call back function that is to be invoked in response to receiving from the server apparatus a response to the request; and sending the request to the server apparatus; wherein the client device does not block while waiting for the response from the server apparatus to the request, thereby allowing one or more operations to be performed at the client device after the client device sends the request and before the client device receives the response to the request; receiving from the server apparatus the response to the request; and in response to receiving the response, invoking the call back function contained in the data structure that was generated upon the user input.