title: How does bucket versioning affect S3's read-after-write consistency guarantee?
body: <p>While S3 supports "read-after-first write" consistency for newly created objects, I wanted to understand how bucket versioning might affect the consistency guarantees&mdash;specifically, when accessing a document using a key <strong>and</strong> a version.</p>
  
  <p>Here's my current understanding of the consistency guarantees offered by S3 gathered from official AWS documentation:</p>
  
  <pre><code>put (new) then get       = strong (with one caveat; see below)
  put (overwrite) then get = eventual
  put then list            = eventual
  delete                   = eventual
  </code></pre>
  
  <p>Obviously when overwriting an existing object (regardless) of bucket versioning, when I access the object by key alone, I'll get an eventually consistent result. But if I access the object by key and version, what happens? Is there any AWS documentation that point to defined behavior?</p>
  
  <p>My question is highly related to <a href="https://stackoverflow.com/questions/35511670/is-creating-a-new-version-of-an-object-in-aws-s3-eventually-consistent-or-read-a">this question</a> but with one exception: the concept of negative caching from the following caveat. The <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel" rel="nofollow noreferrer">AWS docs state</a> (emphasis mine):</p>
  
  <blockquote>
    <p>Amazon S3 provides read-after-write consistency for PUTS of new
    objects in your S3 bucket in all regions with one caveat. <strong>The caveat
    is that if you make a HEAD or GET request to the key name (to find if
    the object exists) before creating the object, Amazon S3 provides
    eventual consistency for read-after-write.</strong></p>
  </blockquote>
  
  <p>When I request an object from S3 located at <code>key@version</code> which doesn't exist, I then create/put that object, and immediately following I issue a request for that same <code>key@version</code>, what is the behavior?</p>