Years later, in the fifteenth re-implementation of some part of some service, somebody is going to forget to read that bit. Or an errant database migration isn't going to transfer it properly. Or the database will be leaked, and all of the "deleted" content will still be there (e.g. the Parler dump). Or a race condition will cause the check to occasionally be ignored every other Sunday.
Discovering that this is happening can be next to impossible. An application might read the deleted bit correctly when generating the ordered list of stuff you've looked at, but might not read it correctly (or might deliberately ignore it) when generating your advertising profile or when making content recommendations. I swear I've seen this on Amazon, though of course, I'll never be able to prove it.
Chilling effects / social cooling includes stuff like this. "I'm not even going to click on that, because I don't trust the platform to clear my history properly."
I don't think that way anymore and I truly believe hard deletes should be the default unless you have a very compelling reason to soft delete (and you should usually only soft delete with some guarantee of future deletion via a publicly accessible data retention/erasure policy)
Some people are calling excessive data "toxic asset", due to the future risks of it causing unexpected breaches of privacy, damage to reputation, or other losses.
We'll certainly develop standard technical means of handling that in due time, quite possibly ones based on cryptography. A common scenario at present: instead of trawling all backups & distributed stores to laboriously expunge every bit of deleted data, you could delete the relevant encryption keys - a small piece of data, a known quantity - rendering the encrypted data inert. This is particularly suited for systems that use WORM approach to backing up & distributing data.
this has been a thing since the 1980s, at least. It's not new, and it's often important for auditing purposes and because mistakes happen.
What's new is the ease with which databases can be accessed and hacked over a global public network.
> Or an errant database migration isn't going to transfer it properly. Or the database will be leaked, and all of the "deleted" content will still be there
Backups are a thing, you know. When you issue a delete command to your database it's not reaching back to time immemorial through the archives and ripping out those records. If we're playing what-ifs, then backup databases can just as easily be leaked.
Under GDPR you'd be required to really delete that. Obviously GDPR laws don't hold everywhere but are you saying you'd just hold the user's data forever or that you'd have a later clean up process or something?
This is why I've never advocated "deleting" Facebook accounts etc. If you "delete" it you're just giving them another piece of information about you. Namely that you want your account to be deleted.
The GDPR has not yet been shown to have any teeth, so I assume nothing has really changed in this respect.
And, yes, holding users' data forever is normal. Storage cost has only decreased relative to the size of these databases. I've worked in places with customer data going back decades.
Also deleting stuff for real for real immediately is really hard.
You need to delete it from the database, the one that's replicating to, caches, online backups AND offline backups. And that's after you've confirmed and reconfirmed from the user that they actually want to delete the data, not just store it in the recycle bin or something idiotic like that.
The easiest way is just to flag as deleted and prune on some kind of schedule. Backups will be overwritten at some point and the data will go away eventually.
It isn't just "technically complex", the limiting factor is your system may be 10x slower and use 10x more storage. The economics of operating these systems is so poor that they are only used in extremely niche environments where the requirements justify the extreme cost and performance limitations.