e, we observe the benefits of coordinating these devices to monitor the right flows at the right time. We call this temporal coordination [87]. With temporal coordination, we can leverage limited resources at hosts and switches to only capture the important flows of interest. For this, we need monitors that decide when and which flows to monitor and watchers that collect information for the selected flows at the right time. We now give a few examples highlighting the benefits of temporal coordination. We discuss one potential solution of the temporal correlation that can be enabled by SDN as follows. Figure 4.9 describes one such temporal correlation measurement system. It configures two key types of components for each monitoring task: the monitors that capture network events, select related flows, and send the information to the watchers that will collect flow-level statistics for the selected flows. To ensure high monitoring accuracy and reduce the memory usage, it is important to coordinate the monitors and watchers in a timely fashion. We can develop coordination algorithms that allow 4 Software-Defined Networks Principles and Applications SDN-based conditional measurement module Configurations Reporting statistics Watcher Monitor Temporal coordination Monitor Watcher Figure 4.9 Conditional SDN measurement overview. the monitors to make the best use of their limited memory based on the information from the selectors. Since the monitors and watchers may be located in different devices, we introduce packet tagging and explicit messaging to ensure the efficient communication between the monitors and watchers ensuring high monitoring accuracy with low bandwidth overhead. To support the maximum number of monitoring tasks in a network of devices with limited memory, we can use optimization techniques to identify the best locations of monitors and watchers by considering the relation between monitors and watchers and the latency constraint between them. 4.4.3 Failure Recovery The susceptibility to failures is alway