S3 Consistency

  • S3 provides strong read-after-write consistency for PUTS of new objects in your S3 bucket.

    • If you make a GET request to the key name (to find if the object exists) before creating the object, S3 provides eventual consistency for read-after-write.

  • S3 offers eventual consistency for overwrite PUTS and DELETES.

  • Bucket configurations have an eventual consistency model.

    • Specifically:

      • If you delete a bucket and immediately list all buckets, the deleted bucket might still appear in the list.

      • If you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated.

  • Updates to a single key are atomic.

    • For example, if you PUT to an existing key, a subsequent read might return the old data or the updated data, but it will never return corrupted or partial data.

      • This usually happens if your application is using parallel requests on the same object.

  • If two PUT requests are simultaneously made to the same key, the request with the latest timestamp wins.

    • If this is an issue, you will need to build an object-locking mechanism into your application.

Last updated

Was this helpful?