> The thing is, you can only offer this feature if your app's architecture is designed from the ground up to support it. Perhaps I'm misunderstanding something, but this makes 0 sense to me. The Save button itself must be able to save the current state. So at the very, very least you should be able to just check on a schedule what the current state is and determine if it differs from the previously saved state. There…
You can give them back the point-in-time or known-state recovery with manual snapshots or history tracking, but now your data system has to support that.