1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of processing elements that process a plurality of data tuples, wherein each of the plurality of processing elements comprises at least one operator; a performance monitor residing in the memory and executed by the at least one processor, the performance monitor monitoring performance of the plurality of processing elements in the flow graph, the performance monitor comprising a congestion detection mechanism that detects when congestion occurs in the plurality of processing elements; and a streams manager residing in the memory and executed by the at least one processor, the streams manager managing the streaming application, and when the performance monitor detects that congestion is occurring in the plurality of processing elements, in response, the streams manager selects based on at least one unfuse criterion at least one operator in the flow graph and unfuses the selected at least one operator from its corresponding processing element to improve congestion, wherein the at least one unfuse criterion specifies to unfuse operators that do not maintain state data.