Skip to main content

© 2026 Stephen Adei. All rights reserved. All content on this site is the intellectual property of Stephen Adei. See License for terms of use and attribution.

ADR-007: Explicit S3 Lifecycle Rules

Status​

Accepted

Context​

The system needs to optimize storage costs by transitioning old data to cheaper storage classes (Glacier) while maintaining predictable access patterns.

The following options were considered:

  1. Explicit lifecycle rules (chosen)
  2. Intelligent-Tiering (rejected)
  3. No lifecycle policies (rejected - high storage costs)

Decision​

Use explicit S3 lifecycle rules instead of Intelligent-Tiering:

  • Silver layer: Transition to Glacier after 90 days
  • Quarantine/Condemned: Transition to Glacier after 5 years

Rationale​

  1. Predictable access patterns: Recent data (hot), old data (cold) - explicit rules match usage
  2. Low object counts: ~50 files/month/bucket - Intelligent-Tiering overhead ($0.0025/1000 objects) not cost-effective
  3. Cost optimization: Explicit rules provide predictable cost reduction
  4. Control: Manual tuning enables optimization for specific access patterns
  5. Simplicity: Explicit rules are easier to understand and audit

Consequences​

Positive:

  • Predictable costs: Explicit rules provide clear cost optimization
  • Control: Manual tuning for specific access patterns
  • Simplicity: Easier to understand and audit than Intelligent-Tiering
  • Cost-effective: No per-object overhead at current scale

Negative:

  • Manual tuning: Requires periodic review and adjustment
  • Less adaptive: Doesn't automatically optimize for changing access patterns

Alternatives Considered​

Intelligent-Tiering​

  • Why rejected: Adds $0.0025 per 1000 objects overhead. At current scale (~50 files/month), overhead exceeds benefit. Explicit rules more cost-effective.

No Lifecycle Policies​

  • Why rejected: High storage costs for old data. Glacier transition reduces costs by 80-90%.

Implementation Evidence​

© 2026 Stephen Adei•CC BY 4.0