MapReduce pioneered this model, while systems like Dryad and Map-Reduce- Merge generalized the types of data flows supported. These systems achieve their scalability and fault tolerance by providing a programming model where the user creates acyclic data flow graphs to pass input data through a set of operators