Cache operation should be best effort, but we should probably return only after the cache put succeeds or fails. Let me know if this doesn't make sense.