Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Java
  3. Permazen

Permazen

Apache-2.0HTML

A language-natural persistence layer for Java that treats the database as a sorted key/value store and implements everything else in Java.

Visit WebsiteGitHubGitHub
425 stars38 forks0 contributors

What is Permazen?

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.

Target Audience

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.

Value Proposition

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.

Overview

Language-Natural Persistence Layer for Java

Use Cases

Best For

  • Java applications needing incremental schema evolution without downtime
  • Projects requiring type-safe database queries using Java streams and lambdas
  • Systems that must support multiple database backends (SQL, key-value, in-memory)
  • Applications with complex validation requirements spanning multiple objects
  • Teams frustrated with JPA's configuration complexity and limitations
  • Projects needing first-class offline data with serialization capabilities

Not Ideal For

  • Applications deployed in high-latency environments where frequent database round-trips are costly
  • Projects requiring database-native features like stored procedures, triggers, or complex query optimization
  • Teams deeply invested in the JPA ecosystem or seeking extensive third-party tooling and community support
  • Simple CRUD applications where JPA's simplicity outweighs Permazen's advanced features

Pros & Cons

Pros

Language-Natural Queries

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.

Automated Schema Evolution

Supports incremental schema updates with cross-version compatibility and automatic structural changes, enabling rolling upgrades without downtime, a core feature highlighted in the documentation.

Database Agnosticism

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.

Advanced Validation Framework

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.

Cons

Network Latency Sensitivity

Performs more frequent but smaller database accesses, which can be prohibitively slow in high-latency networks, a downside explicitly acknowledged in the README.

No Query Planner

Lacks a built-in query optimizer, requiring developers to manually plan and optimize queries, increasing cognitive load compared to traditional ORMs like JPA.

Steep Conceptual Learning Curve

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.

Open Source Alternative To

Permazen is an open-source alternative to the following products:

J
JDO

JDO (Java Data Objects) is a standard interface-based Java model for persistence, providing transparent storage of Java objects in databases.

J
JPA

Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects/classes and a relational database.

Frequently Asked Questions

Quick Stats

Stars425
Forks38
Contributors0
Open Issues5
Last commit11 months ago
CreatedSince 2015

Tags

#persistence-layer#database#type-safety#orm-framework#cli-tool#java#key-value-store#object-relational-mapping#database-abstraction#serialization#schema-management#persistence#key-value#raft

Built With

J
Java

Links & Resources

Website

Included in

Java47.5k
Auto-fetched 9 hours ago

Related Projects

MyBatisMyBatis

MyBatis SQL mapper framework for Java

Stars20,443
Forks12,860
Last commit2 days ago
MyBatis-PlusMyBatis-Plus

An powerful enhanced toolkit of MyBatis for simplify development

Stars17,467
Forks4,446
Last commit1 month ago
ObjectiveSqlObjectiveSql

Writing SQL using Java syntax

Stars1,259
Forks158
Last commit2 years ago
DomaDoma

DAO oriented database mapping framework for Java

Stars508
Forks74
Last commit17 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub