Soft deletion probably isn't worth it
I&#x27;ve been a software dev since the 90s and at this point, I&#x27;ve learned to basically do things like audit trails and soft deletion by default, unless there&#x27;s some reason <i>not</i> to.<p>Somebody <i>always</i> wants to undelete something, or examine it to see why it was deleted, or see who changed something, or blah blah blah. It helps the business, it helps <i>you</i> as developer by giving you debug information as well as helping you to cover your ass when you are blamed for some data loss bug that was really user error.<p>Soft deletion has obvious drawbacks but is usually far less work than implementing equivalent functionality out-of-stream, with verbose logging or some such.<p>Retrofitting your app and adding soft deletion and audit trails after the fact is usually an order of magnitude more work. Can always add it pre-launch and leave it turned off.<p>If performance is a concern, this is usually something that can be mitigated. You can e.g. have a reaper job that runs daily and hard-deletes everything that was soft-deleted more than <i>n</i> days ago, or whatever.