I'm starting to use SQLAlchemy for a new project where I was planning to implement an audit trail similar to the one proposed on these questions:
- Implementing Audit Trail for Objects in C#?
 - Audit trails and implementing SOX/HIPAA/etc, best practices for sensitive data
 - Ideas on database design for capturing audit trails
 - What is the best implementation for DB Audit Trail?
 - Is this the best approach to creating an audit trail?
 - Effective strategy for leaving an audit trail/change history for DB applications?
 - Data Auditing in NHibernate and SqlServer.
 
As I will have the full history of the "interesting" objects, I was thinking in allowing users to rollback to a given version, giving them the possibility to have unlimited undo.
Would this be possible to be done in a clean way with SQLAlchemy?
What would be the correct way to expose this feature in the internal API (business logic and ORM)?
I was something along the ways of user.rollback(ver=42).