1. A pipeline implemented by one or more computers, the pipeline comprising: a first stage for executing a first data processing service to output a first set of data and a second set of data; a second stage for executing a second data processing service; and a data host having a size based on an amount of time that the second stage executes the second data processing service and an amount of time that the first stage executes the first data processing service, communicatively coupled to the first and second stages for: storing the first set of data such that the executing of the first data processing service is asynchronous with respect to the executing of the second data processing service; and communicating the second set of data to the second stage, wherein the storing and the communicating are asynchronous, one to another.