{
  "slug": "object-versioning",
  "term": "Object versioning",
  "aliases": [
    "Object storage versioning",
    "S3 Versioning"
  ],
  "definition": "Object versioning retains separately identifiable revisions of an object under the same key.",
  "note": "In a versioning-enabled S3 bucket, replacing an object creates a new current version and retains the previous one; a delete without versionId creates a delete marker. Versions are complete objects, not user-visible differential backups. This describes enabled versioning, not suspended buckets. [version]",
  "status": "shipping",
  "advantages": [
    {
      "text": "A known version ID identifies which retained revision a recovery process requests.",
      "citationIds": [
        "get"
      ]
    }
  ],
  "limitations": [
    {
      "text": "Versioning alone does not prohibit permanent deletion of a version by an authorized caller.",
      "citationIds": [
        "version"
      ]
    },
    {
      "text": "A current delete marker makes a GET without versionId return 404 even when older versions remain.",
      "citationIds": [
        "marker"
      ]
    }
  ],
  "related": [
    "object-storage",
    "object-lock",
    "conditional-write",
    "backup-manifest",
    "immutability-storage"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-15",
  "citations": [
    {
      "id": "version",
      "title": "Amazon S3: How S3 Versioning works",
      "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "marker",
      "title": "Amazon S3: Working with delete markers",
      "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "get",
      "title": "Amazon S3 API: GetObject",
      "url": "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "hesela-backup-evidence",
      "title": "Hesela: Backup verification is not a restore test",
      "url": "https://hesela.com/analyses/backup-verification-is-not-a-restore-test/",
      "accessed": "2026-10-15"
    }
  ]
}
