Prompt
I'm building a workflow app that generates documents and needs low-cost archive storage later. What would you recommend?
Latest observation
For a workflow app that creates documents now and needs cheap long-term storage later, I’d recommend a tiered storage design:
Best-practice approach
1) Store “active” documents in primary storage
Use a database + object storage for documents that are still being edited, viewed often, or need fast access.
- Database: metadata, status, ownership, version history
- Object storage: the actual generated files
Examples: AWS S3, Google Cloud Storage, Azure Blob Storage
2) Move older documents to archive storage automatically
Once a document is no longer actively used, transition it to a colder, cheaper storage tier.
Good low-cost archive options:
- AWS S3 Glacier Deep Archive — usually the cheapest for long retention
- AWS S3 Glacier Flexible Retrieval — cheaper than normal storage, faster retrieval than Deep Archive
- Google Cloud Archive Storage
- Azure Blob Archive Tier
If your use case is “rarely accessed, but must be retained,” Deep Archive / Archive Tier is usually the best cost saver.
What I’d recommend depending on access pattern
If documents are rarely needed but must be retained
Choose Deep Archive / Archive tier.
Pros:
- Lowest storage cost
- Good for compliance, legal retention, long-term records
Cons:
- Retrieval can take hours
- Retrieval fees can be non-trivial
If documents may need to be retrieved sometimes
Choose a cold storage tier with faster access.
Pros:
- Lower cost than hot storage
- Faster restore times
Cons:
- More expensive than deep archive
Suggested architecture
A practical setup:
- Generate document
- Save current file in object storage hot tier
- Save metadata in DB
- After a retention period, run a lifecycle rule to transition files to archive storage
- Keep a pointer in the DB to the archived object
- On access, restore or fetch if supported
This gives you:
- low operational complexity
- low cost for old files
- easy automation
Important things to plan for
Retrieval latency
Archive storage is cheap because it’s not immediately accessible. If users expect instant downloads, don’t put frequently accessed files there.
Retrieval cost
Archive tiers often charge for restores and access. If users retrieve files often, “cheap storage” may become expensive overall.
Lifecycle automation
Use automatic policies so you don’t manually move files.
File immutability / retention
If documents are records, consider:
- versioning
- object lock / WORM retention
- audit logs
My short recommendation
If you want the simplest low-cost path:
- Use object storage for generated files
- Set lifecycle rules to move old files to archive tier
- Pick AWS S3 Glacier Deep Archive / Azure Archive / GCS Archive depending on your cloud
If you want the best balance of cost and usability, start with:
- Standard storage for 30–90 days
- then move to cold/archive storage
If you want, I can also suggest a specific cloud/provider setup based on your stack (AWS/GCP/Azure) or help design the database + storage schema for this workflow.