I was describing Envers to someone but could not find a nice landing page explaining bridfly what it does and how to go further.
Probably something like http://hibrenate.org/orm/envers
Temptatively assigned to Adam.