Ich möchte hier mal den Begriff CQRS in die Runde werfen. Soweit ich das verstanden habe, werden hier genau solche Übergänge gespeichert. Hier ist mal ein kleines Beispiel (allerdings in C#):
click.
Der eigentliche Witz daran ist, dass die sog. Events als auch ein ReadModel gespeichert wird. Die Events sind z.B. CustomerCreatedEvent. In diesen Events kann dann alles gespeichert werden, was mal interessant sein könnte (wer wars, wann, usw). Das ReadModel kann jederzeit wieder komplett aus diesen Events erneut hergestellt werden. Davon abgesehen bekommt man ein Audit direkt mitgeliefert.
Hier findet sich dann auch noch ein größeres Framework dazu (wieder C#).
Gruß
schlecki