A video platform's storage grows monotonically while most content is watched rarely after its first weeks. What storage cost strategy applies, and what are the traps?
Show the full answer Hide the answer
The strategy
Tier by access probability, which is predictable from age plus a few signals.
The access distribution is steeply skewed and decays: heavy access on publication, occasional access in the following weeks, essentially none after that — with a small evergreen tail that stays hot for years.
One storage class for that distribution is either ruinously expensive or unusably slow, so the design is lifecycle policies moving objects through standard, infrequent-access and archival tiers, with intelligent tiering for the unpredictable evergreen tail.
A CDN in front of everything user-facing is what makes aggressive tiering safe: the cold tier is reached only on a genuine cold miss, so its latency is invisible for anything recently or repeatedly accessed.
The video-specific decisions
Rendition strategy is a storage decision. Transcoding into many resolutions and formats multiplies storage by the number of renditions. For rarely-watched content, storing fewer renditions and generating others on demand trades compute for storage — and given that most of the catalogue is watched rarely, this is where the largest saving usually is.
Derived artefacts are a cache, not data. Thumbnails, previews and low-priority renditions are regenerable; give them shorter lifecycles and be willing to delete and regenerate rather than paying to retain them forever.
The traps
1. Lifecycle thrash. Cold tiers bill a minimum retention period. Moving an object down and back up quickly costs more than never moving it — a real and frequently-missed cost bug.
2. Retrieval latency violating a product expectation. A policy archiving after 30 days is wrong if users routinely return at 45 days and archival retrieval takes hours.
3. Request charges exceeding storage charges. At billions of small objects, per-request pricing can dominate, sometimes making it correct to batch small objects together.
4. Egress ignored. Serving directly from object storage to users is expensive; the CDN is a cost control as much as a latency control.
5. Deletion breaking deduplication. With content addressing, removing one user's asset must not delete a block another references — reference counting is required.
6. Retention decided by absence of a decision. Storage grows because deleting requires someone to decide it is safe, and nobody wants to. An explicit retention policy with an owner is the only thing that stops unbounded accumulation.
The framing
Storage is the cost that only ever grows, and grows with cumulative history rather than current activity. That makes it the line item most likely to dominate eventually, and the one where a declarative lifecycle policy set early compounds in value for years.