1. A method performed by a generic wait service for pausing an instance of a service-oriented application the method comprising: receiving, from the instance of the service-oriented application, an initiation message including a first set of attributes and an exit criterion, the first set of attributes uniquely identifying the instance, the exit criterion identifying a condition that should be satisfied before the instance is allowed to resume; defining two or more wait states in parallel for the instance, wherein the two or more wait states include a first wait state in which a first task flow begins execution after the first wait state and a second wait state in which a second task flow begins execution after the second wait state which is parallel to the first wait state; de-coupling the service-oriented application from event producers responsible for generating status information, wherein the service-oriented application is not required to be aware of technical complexities involved in correlating a notification message received from the event producers to a particular paused instance, and the event producers are not required to be aware of the instance that is waiting for status information; based on the first and second wait states, creating a correlation set based on the first set of attributes, the correlation set associating the first set of attributes with the instance; pausing the instance; waiting for status information relevant to the instance; receiving, from an event producer, a notification message including a second set of attributes and a status of a business event; determining, based on the correlation set, that the status is relevant to the instance; determining, based on the status, that the exit criterion is satisfied; and in response to the exit criterion being satisfied, sending the status to the instance and resuming the instance.