When a blob is saved, first I write it to Postgres (https://neon.tech), so that ensures there's a persisting backup. However, it's typically a waste of money to store infrequently accessed blobs in disk with Postgres over months and years. After 4-6 weeks data is offloaded to object storage - so that you benefit from low long term storage costs.
The lifecycle of a blob works out roughly something like as follows, based on last read date:
The lifecycle of a blob works out roughly something like as follows, based on last read date:
< 30 mins ago
- In-Memory: Cloudflare CDN
< 30 days ago
- In-Disk: Redis Auto-Tiering Memory/Disk combination
- In-Disk: Postgres
> 30 days ago
- Object Storage: Backblaze B2