1. A method for recovering from software failures, comprising: receiving failure information that identifies a failing component of a first processing graph; modifying a planning domain that includes a plurality of component descriptions according to the failure information; composing using a processor of a computer, a second processing graph by using machine code executable by the computer to process the modified planning domain, wherein the method further comprises: deploying the second processing graph in an execution environment; executing the second processing graph; and providing a result of the executed second processing graph if a failing component is not identified during the execution of the second processing graph.