1. A computer program product comprising one or more computer-readable storage media having thereon computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to perform a method for first portion of an application to communicate with a second portion of the application, the method comprising: an act of monitoring data flow between a first portion of an application and a second portion of the application, the first portion of the application interfacing with a first hardware entity, and the second portion of the application interfacing with a second hardware entity; and an act of recording data flow from the first portion of the application to the second portion of the application in a manner that the second portion of the application can replay the recorded data flow.