Every self-respecting interactive application should support undo and redo.
For some reason the Web hasn't caught this religion yet, but as applications become more complex, the need for undo and redo will become stronger and stronger.
All undo and redo need is a log containing "before" and "after" information that describes a change, along with information about how to transform the system in both directions.
An undo/redo log is very similar to an operation log needed for recovery (the operation long has the "redo" part but not the "undo" part).
Is it possible to do logging in a way that supports undo and redo as well as recovery?
Most enterprise-class systems also need an audit mechanism to keep track of all changes and identify who made them. This is also very similar to an operation log.
Could we use our operation log to provide an audit trail also?