Hi, I think the persistence / storage API should be generic enough to support at least 3 different implementations efficiently:
- an implementation based on a relational database - a file based implementation - in-memory I think the storage API should support some kind of "storage session" (normally one storage session for each JCR session). For a relational database, such a session could map to a database connection. In my view the persistence should be based on "bundles" (node with all property values and with the list of child nodes) as it is now; maybe there should be a way to combine multiple bundles into one. Probably there should be a way to persist the transient space (only when it doesn't fit in memory). Otherwise we would need to implement a separate mechanism for that (using temporary files). I think the "data store" API can be used as it is (maybe we can simplify it a bit). Regards, Thomas