As a member of the secretive web application builder society, I am about to break ranks and point out a long held secret of our little group that many have known, but refused to admit.
Web Applications lose data. By design.
Have you ever been hammering on a web application with a team of people, say a bug tracking system, and had a recurring issue of small changes going missing? If you have, then you have met our demon face to face. Undoubtably, you questioned your perception, how could this software be breaking? We tested it, and it worked flawlessly!
Web software that handles edits of data only work when there are no clashing edits. If there is a clashing edit, then in the best case the second person to commit will lose his edit, and be informed of the conflict. In the worst case, the first person's edits will be silently over written. It is the silent data overwrite case that is the default in most web applications in service, because it is the easiest to code.
You can test this yourself easily enough. Open up a LiveJournal post or comment in two different web browser windows, and edit it in both. Commit one, then the other. Notice that your edits from the first submission are now missing?
How could this be? We had a long history of building applications that dealt with data properly! Well, one of the things we did, sleight of hand style, when we were creating web applications is that we dropped the data integrity maintaining locking strategy for database records on the floor. We had no choice, we never knew if someone was going to post back the form they were filling in. HTTP is stateless, ya see...
About the only web application that deals with clashing edits correctly is Wave.