Dont we need 'put if absent' semantic to be atomic to prevent a (cache stampede)[http://en.wikipedia.org/wiki/Cache_stampede]. I was thinking we will have to take AsyncMutex and flatmap that before we do anything. Or is the expectation that client will ensure that store is used in a threadsafe manner?