Version 2 is a big step forward, and I am glad to see that the development team have been careful to pick a direction for that step. Too many developers try to grow the scope of functionality on release 2, but prevayler has remained true to its niche.
So where does it sit in the persistence technology map?
It is a command pattern based memory persistence library. Which means that it does its best to take your business objects and write them to file using Java serialization on every transaction that updates the objects. To make it work you must use the Command pattern which for a well designed application should not be too painful.
Version 2, apart from the licence changes, makes the following significant improvements:
- Data Integrity/Correctness - transactions now roll back properly.
- Speed - batching support and buffered streams.
- Integration - OQL extension point, XML snapshots and Eclipse plugins.
- Management - better file management and switchable prevalence (close one, open another).
It is still limited by the memory available, the command pattern, Java serialization and the capabilities of the filesystem, but for small applications it is a much more attainable solution than an embedded database and a persistence mapping layer.