views:

119

answers:

3

I wathced a screen cast on DDD by Greg Young the other day which spoke about persisting all state transitions of an object, instead of it's state when saved, then to load it "replay" all these messages to get the current state back.. This seemed like a really interesting idea, but I'm stuck as to what this particular thing is called! I'd like to read more about it, but I'm having trouble getting any decent results without a real name for it.

Can anyone enlighten me?

screen cast is @ http://www.infoq.com/presentations/greg-young-unshackle-qcon08

+2  A: 

The comment by Michael Perry calls it Historic Modeling.

He also says that he has "defined a set of rules and a framework for Historic Modeling:" and provides a couple links: (I don't have enough rep to post them both)

http://correspondence.codeplex.com/


I haven't personally studied or used state transition models, but it does sound interesting.

Eric Dahlvang
A: 

Slightly off on a tangent... Rocky Lhotka has implemented something he calls n-level undo (elsewhere referred to as Multilevel Undo) in his CSLA Business Object framework but this only applies to history of changes in memory and (that I'm aware of) doesn't persist down into the DB.

DDD folks tend not to think very highly of CSLA but some of the ideas and implementations contained therein are definitely worth looking into.

rohancragg
+2  A: 

Martin Fowler calls this Event Sourcing. Greg Young even references Fowler in his series on Distributed Domain Driven Design, in which he clarifies some details regarding the presentation; you might want to read it.

pmf