HerdDB

maintenance

by Diennea · since 2016

JVM-embeddable distributed SQL database replicated with Apache BookKeeper and ZooKeeper.

relationalkey-valuedatabase engineopen source (permissive)mature

maintenance. Last release 0.29.0 (March 2024); recent commits are build and dependency upkeep only.

Overview

HerdDB is a distributed SQL database written in Java by the Italian company Diennea. Each JVM can embed a node and read local data without a network hop, or run as a standalone server reached over JDBC. Internally it is a key-value store with a SQL layer planned by Apache Calcite; tables are grouped into tablespaces, and each tablespace has one leader and a set of replicas whose write-ahead log is replicated through Apache BookKeeper, with ZooKeeper handling metadata and leader election, so no shared storage is needed. Transactions use read-committed isolation and may span tables only within one tablespace. It is tuned for fast writes and primary-key access. Releases have slowed to occasional maintenance; 0.29.0 shipped in March 2024.

Strengths & trade-offs

Strengths

  • +Runs embedded in the application JVM or as a cluster of servers
  • +Replication on BookKeeper and ZooKeeper without shared storage
  • +Standard JDBC and Calcite-planned SQL
  • +Fast writes and primary-key lookups

Trade-offs

  • −Read-committed isolation only; no serializable transactions
  • −Transactions and subqueries limited to a single tablespace
  • −Small community and slow release cadence
  • −Requires operating ZooKeeper and BookKeeper for replication

Great for

  • +Embedded replicated SQL store inside Java services
  • +Metadata and configuration storage for JVM platforms
  • +Write-heavy primary-key workloads

Think twice for

  • −Analytical queries
  • −Non-JVM applications
  • −Workloads needing serializable isolation

Capabilities

Native or official first-party support · 4 of 25 tracked

✓Transactions
✓Joins
✓Secondary indexes
✓Durable persistence
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
Manual
Multi-region
No
Transactions
Limited ACID
Consistency
Strong
Schema
Strict
Architecture
Embedded, Client server, Primary replica, Distributed
Query languages
SQL

Data is partitioned by tablespace, each led by one node with replicas; transactions cannot span tablespaces.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsJDBC, Java low-level API
client languagesJava

Alternatives to HerdDB

Compare all→
H2 DatabaseRelational23.5

Fast pure-Java SQL engine for embedded, in-memory and test databases, with compatibility modes.

herddb vs h2 →
HyperSQL (HSQLDB)Relational9.4

Long-running pure-Java SQL database with strong SQL:2023 coverage, used embedded and in LibreOffice.

herddb vs hsqldb →
Apache DerbyRelational9.6

Pure-Java embedded SQL database from the Cloudscape lineage, retired by Apache in 2025.

herddb vs apache-derby →
CockroachDBRelational47.1

Postgres-wire distributed SQL built to survive node, zone and region failures with serializable transactions.

herddb vs cockroachdb →
Apache IgniteKey-Value28.3

A distributed, memory-first SQL database and compute grid; Ignite 3 rebuilt it around Raft and Calcite.

herddb vs apache-ignite →
BadgerKey-Value10.7

Pure-Go LSM key-value store that separates keys from values to cut write amplification.

herddb vs badger →

HerdDB FAQ

What is HerdDB?

HerdDB is a relational database by Diennea, first released in 2016. HerdDB is a distributed SQL database written in Java by the Italian company Diennea. Each JVM can embed a node and read local data without a network hop, or run as a standalone server reached over JDBC. Internally it is a key-value store with a SQL layer planned by Apache Calcite; tables are grouped into tablespaces, and each tablespace has one leader and a set of replicas whose write-ahead log is replicated through Apache BookKeeper, with ZooKeeper handling metadata and leader election, so no shared storage is needed. Transactions use read-committed isolation and may span tables only within one tablespace. It is tuned for fast writes and primary-key access. Releases have slowed to occasional maintenance; 0.29.0 shipped in March 2024.

Is HerdDB open source?

Yes. HerdDB is open source. License: Apache License 2.0.

Does HerdDB support ACID transactions?

Partly. HerdDB offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.

Does HerdDB scale horizontally?

HerdDB has no built-in sharding; scaling out means partitioning data in your application. It is comfortable at medium scale (≤ 10 TB).

How can I run HerdDB?

You can self-host it and embed it in your application.

What is HerdDB best for?

HerdDB is a strong fit for embedded replicated SQL store inside Java services; metadata and configuration storage for JVM platforms; and write-heavy primary-key workloads. Think twice for analytical queries.

What are the best alternatives to HerdDB?

Common alternatives to HerdDB include H2 Database, HyperSQL (HSQLDB), Apache Derby, CockroachDB and Apache Ignite. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is HerdDB still maintained?

HerdDB is in maintenance mode. Last release 0.29.0 (March 2024); recent commits are build and dependency upkeep only.

How popular is HerdDB?

HerdDB ranks #553 of 844 databases on the WhichDB Score (1.4/100), and #170 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.