Is it time to lay one of the mighty verbs of HTTP to rest (if you excuse the pun)? IMHO it won’t be long now before we stop deleting data, cheap highly available storage is making the notion obsolete. Just as modern programming languages prefer garbage collection over explicit memory allocation and de-allocation, I think internet based systems will move to a model where the server will perform garbage collection, keeping N recent versions of a resource as space permits and expunging older versions over time. People will get used to the notion that older versions of their data endure, and will expect their software to support this notion. I believe people will find huge value in being able to observe and revisit their edits, I believe that in many domains there is huge value to be found in analyzing and studying the how, when, and why of those edits. Software engineers routinely use versioning systems like GIT, SVN etc. to understand how the code they are working on has evolved. Often its just as important to understand how code got to its current state, as understanding the current state itself, especially when doing collaborative development. The versioning system becomes a channel for communication, not just a repository of bytes.
Sure there will still be a need to make a resource inaccessible, but that’s all you will do, you won’t be erasing, expunging, eradicating a single byte, they’ll still persist and there will likely be a way to recover access to those precious bytes if you change your mind later. Making your resource inaccessible could be accomplished via a PUT rather than a DELETE.
When people come to expect their history of changes to endure, what will it mean for those systems that only support a notion of a single latest state? How will RDBMS and even enterprise domain models change and adapt to support many versions of a single data cell ? Will Google’s BigTable with its notion of many versions of a cell point the way? Will we adopt versioning filesystems for storing the data on our local storage, will Apple’s Time Machine prove to be a tipping point in how we think about local data storage? How will we find the data we’re interested in in the giant haystack of multitudinous versions of our data?
How long before 410 Gone becomes more prevalent than 404 Not Found ?