Code for this post:
In CQRS (put on your architecture buzzword helmets now) domain objects are replaced by aggregate roots. The in memory representation of aggregate roots is never directly persisted. It only has getter properties. It can also respond to messages, sometimes called domain events, that update its state. These events can be persisted, and are appended to the end of a event store, which therefore records the history of everything that has happened to the aggregate root.