IFLOW: Self-managing distributed information flows Brian Cooper, Yahoo! Research Large scale information flows are a critical substrate for building many modern enterprise and scientific applications. However, constructing, tuning and maintaining information flow systems is very difficult due to their distribution and complexity. Moreover, application users are often concerned with business-level performance metrics and value (such as "information requests by first class passengers should receive higher priority than requests by coach passengers"), and want the information flow system to automatically make low-level decisions which maximize business-level utility. In this talk, I will describe IFLOW, a self-managing information flow middleware we have built. IFLOW presents a set of abstractions that make it easier to develop, deploy and manage new distributed information services. Application developers specify their processing as "task graphs," representing flows of information between software components. They also specify a high-level utility function, which computes the "business value" of a system configuration, based on the performance delivered by the system. IFLOW then attempts to deploy the software components to network nodes in order to optimize this business utility. Over time, as conditions change, IFLOW can reconfigure information flows to continue maintaining high utility. I will describe the design and implementation of IFLOW. I will focus on one use of IFLOW, as the framework for a distributed event processing system. I will also touch on other applications of IFLOW.