A language-natural persistence layer for Java that treats the database as a sorted key/value store and implements everything else in Java.
Permazen is a language-natural persistence layer for Java that redefines how applications interact with databases. It treats the database as a sorted key/value store and implements encoding/decoding, indexes, schema management, and queries entirely in Java, providing a more complete solution to persistence programming challenges than traditional ORM frameworks.
Java developers building applications with complex persistence requirements who are frustrated with JPA's limitations, particularly those needing advanced schema evolution, type-safe queries, and flexible database backends.
Developers choose Permazen because it addresses fundamental persistence issues that JPA ignores, provides language-natural queries using Java streams, supports incremental schema evolution without downtime, and works with multiple database technologies through a clean abstraction layer.
Language-Natural Persistence Layer for Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Queries are written in regular Java code using Java 8 streams and lambdas, eliminating separate query languages and improving code concordance, as emphasized in the README.
Supports incremental schema updates with cross-version compatibility and automatic structural changes, enabling rolling upgrades without downtime, a core feature highlighted in the documentation.
Works with SQL, key-value, or in-memory databases via a modular key/value API with adapters for 15+ technologies, providing exceptional flexibility in storage choices.
Enables precise, non-local field change notifications and cross-object validation, addressing issues that JPA leaves poorly handled, as outlined in the README's philosophy.
Performs more frequent but smaller database accesses, which can be prohibitively slow in high-latency networks, a downside explicitly acknowledged in the README.
Lacks a built-in query optimizer, requiring developers to manually plan and optimize queries, increasing cognitive load compared to traditional ORMs like JPA.
Demands a shift in mindset from database-centric to language-natural persistence, with no DAO layer and potential for messy type hierarchies due to full interface and generic support.
Permazen is an open-source alternative to the following products:
JDO (Java Data Objects) is a standard interface-based Java model for persistence, providing transparent storage of Java objects in databases.
Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects/classes and a relational database.