Short answer: for a customer-support SaaS that must retain original receipt files, keep the database recovery window in managed database backups and put validated, encrypted receipt archives in object storage when large-file throughput and retention matter. The restore workflow, rather than the storage bill, should decide the boundary.
I start with the recovery SLO and then work backward to the bytes. A receipt system has two different records: the database row that says what a support agent saw, and the original file that may be needed during an audit. Losing either one creates a different incident. A database snapshot cannot by itself preserve an object that was uploaded outside the database, and a bucket full of files cannot restore the tenant, receipt status, or audit relationship.
This is the kind of design where a neat diagram can hide the real work.…