Object lifecycle policy is a state machine over object age, current-version status, storage class, and sometimes tags or prefixes. In a versioned bucket, current-version expiration can make a delete marker current while a former current version becomes noncurrent. A separate rule may then expire noncurrent versions permanently. Moving an object into an archive class can change restore latency and retrieval charges. Those transitions must be judged against the actual restore-time objective, not only a retention duration on paper.
Object lifecycle rules: model current, noncurrent, and archive states
Operational decision
A claims archive retains monthly evidence while allowing fast recovery of the last two settlement cycles. Build a state table before deploying a rule: write date, current-version expiry, noncurrent expiry, archive transition, minimum storage duration, legal hold, and the final irreversible deletion point. Include versions created by corrections; their noncurrent age begins when they stop being current, not when the key was first created. Put a narrow prefix or tag on test objects in a disposable bucket, advance or inspect eligibility where the provider permits, and verify that a current-key read, version-specific read, and archive restore each behave as expected. Record when the lifecycle engine actually acts; eligibility time is not a synchronous deletion guarantee. Price transitions, retrievals, and early deletion periods against expected access rather than labelling the coldest tier automatically cheapest. Review the policy with records and recovery owners before letting it touch protected evidence.
Claims evidence lifecycle review
Current key: readable during active claims window
Noncurrent correction: retained through rollback window
Archive transition: restore latency fits recovery objective
Legal hold: prevents deletion where applicable
Irreversible point: version expiry after reviewed retention
Test: current read, old-version read, archive restore, final listingCost and verification
For N object versions, inventory-based review is O(N) in records processed and storage proportional to retained bytes. More versions increase storage cost; archive retrieval adds request and data charges. Measure oldest required recovery point, sample restore duration, noncurrent bytes, and lifecycle backlog. The expensive failure is a policy that permanently expires the only correct version before anyone has tested a restore.
Common Mistakes
- Do not use current-key expiry as proof all versions were deleted.
- Do not assume archived bytes satisfy a short restore objective without a timed drill.
- Do not apply a broad prefix rule to held evidence without testing its exact filters.
Connected lessons
- DevOps: delivery, infrastructure, and reliable operations
- Object version recovery: distinguish a delete marker from lost bytes
- Immutable backup retention: protect recovery copies from deletion
- Backups and disaster recovery: prove the restore path
- Cloud cost and capacity: assign an owner to each recurring resource
