
The Database Can Roll Back, S3 Cannot: Cleaning Up Files After Failure
DB::transaction() can roll back SQL, but it cannot undo an S3 request that already succeeded. File workflows therefore need staging, compensating cleanup, after-commit work, and retryable reconciliation.











