1. A method for decoupling modules in a computer system, comprising: sending a message, by a first module in a first host, to a second module in a second host by means of asynchronous messaging; maintaining, in scopes managed in a scope hierarchy, a context containing one or more resources needed to process the message; sending, to the second host, a copy of the context; pausing the first module; receiving a response indicating that the message has been processed by the second module; receiving, from the second host, updates to the copy of the context; incorporating the updates into the context in the scope hierarchy; and resuming the first module on the first host.