It is an in-RAM database backed by snapshots of the system via object serialization, which are loaded after a system crash to restore state.
Changes to data happen via transaction operations on objects made from serializable classes.
Prevayler's development was started by Klaus Wuestefeld.
[1] Read operations are three to four orders of magnitude faster with Prevayler when compared to traditional database systems since all objects are always in RAM and in-process.
Prevayler requires enough RAM to keep the entire system state.