Current core development values =============================== * Target :code:`async` only. * Store the database file as a single human-editable file. * Keep the core module a single minimalistic file. * Provide for dynamic instrumentation. Guidelines for developers of Persistence 5 ========================================== These apply both to the internal PARRRATE TNV team behind Persistence 5 and to external contributors. * Before contributing a feature to Persistence 5, the following should be considered: * Addition of a simple extensible/flexible support for the further integration of external features is preferred over adding features themselves. * Addition of features as extensions is preferred over adding features to core codebase. * Maintaining extensions as separate projects is preferred over adding them to the core repository. * Forking of the repository is encouraged. * Usage of the repository as a reference for custom data storage solutions is encouraged. * Instrumentation code base is more open to direct code contributions. * Main way of instrumentation is code injection. * Instrumentation on its own shouldn't require changes to the core code, even though instrumentation-allowing core code is preferred.