1. A computer implemented method comprising: receiving a request in a parent thread, the request including application context and session data of a first application, wherein the parent thread includes an identifier and a first instance of a request context object that stores the identifier; creating a request context associated with the application context and the session data of the first application; a processor associated with the computer creating a set of parallel threads as child threads of the parent thread to process the request in parallel, wherein at least one thread in the set of child parallel threads includes a unique identifier and a second instance of the request context object, wherein the second instance of the request context object inherits the stored identifier from the first instance of the request context object from the parent thread; invoking a request dispatcher on the at least one thread in the set of child parallel threads to forward the request to a second application to process the request; creating a new request context for the at least one thread of the set of child parallel threads and associating the new request context with a new application context and new session data of the second application; switching the application context and the session data of the first application to the new application context and the new session data of the second application for processing the request at the second application; restoring the application context and the session data of the parent thread in the first instance of the request context object after the request is processed at the second application; repeating the steps of invoking, creating, switching, and restoring for a group of applications that are required to process the request; and forwarding a response object from a last application of the group of the applications to the first application.