ObjectPrevalence is extremely simple and provides
TransparentPersistence only for what matters:
BusinessObjects.
Some ambitious projects like
PJama, though, are working to provide
TransparentPersistence for the entire system, for all objects.
The main problems with this are:
- It is very difficult to generate a consistent state snapshot with multiple threads running and potentially accessing the same variables.
- It is very costly to run and complex to implement.
- It requires the rewriting of the whole runtime environment or virtual machine.
- It has trouble persisting objects that wouldn't make sense after a system crash anyway, such as: file handles, sockets, GUI widgets, etc.
See:
DoesntTheSystemHaveToStopInOrderToProduceAConsistentSnapshot?