Hi I am continuing to work on Data Persistence and Plack support. In that matter, I am first focusing on obvious circular references between Modules. I first naively thought that simply using direct calls to functions without calling use module would solve the problem. But if compilation is OK then at runtime, it would fail unless all the modules are loaded in Plack... And in CGI mode, it would fail. It seems that most of the Circular references in the code are owed to functions which have been created to do some checking before doing an operation... For instance : CanItemBeRenewed CanItemBeReserved CanBookBeReserved CanItemBeIssued CanItemBeIssued .... Deletion of Serials in DelBiblio Those things would be solved if we would create new modules in order to perform those checks and then call them not in the module but in the script itself... A kind of Controller. My proposal is to create a new directory in C4/ called Decisions or Controller (I am not fixed on a namespace for that.) And then create inside one module for one "Object" Circulation Reserve, Biblio, Serials... And use that in the scripts. I am aware that it would not fix circular references in the data structures itself... But that would be a first step towards persistence. Then we have to inspect at runtime the increase in Memory consuming and control with introspection... Maybe a server could be built and some apache logs replayed on that so that memory consumption could be traced. If you are working on the same stuff, and want to share what point you are at... Then come on #koha channel or let's organise a meeting around that. Any feedback would be welcome. -- Henri-Damien LAURENT