Map Reduce design pattern by Donald Miner and Adam Shook