mrkeyoor.com_
Tue 22 Sept 16:39 UTC
Dataevaluationupdated 22 Sept 2026

hydradb review

HydraDB is a distributed graph database that keeps its durable data and traversal indexes in S3-compatible object storage. Query nodes and background indexers can be replaced or scaled separately, while clients use a subset of OpenCypher through Neo4j-compatible Bolt or an HTTP API. It is aimed at teams that want object storage to remain the source of truth for a graph cluster.

Verdict

Our HydraDB build succeeded in 249 seconds, but the 133-second test run stopped at a missing graphblas library, so the repository is buildable in our sandbox without being test-clean there. Trial it if object storage as the durable graph layer is the requirement you are designing around. For a general graph application, v0.1.1, the native setup, and open questions around self-hosted mutations make Neo4j, Memgraph, JanusGraph, or AGE the safer first evaluation.

We ran it

Lab card: what happened when we ran hydradbScreenshot of hydradb (hydradb.com)
Install✓ · 42s309 packages
Build✓ · 249s
Tests✗ · 133sran, no count parsed
Repo156 files~106,143 lines of source · 4.3 MB · 2 CI workflows · Dockerfile

Answers from our run

Does hydradb build from source?

Dependencies installed in 42 seconds (309 packages), and the build succeeded in 249 seconds. We cloned commit 6a2fbb1 into a clean Debian container with 3 CPUs and no project-specific setup.

Do hydradb's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use hydradb?

Teams wanting the lowest-effort graph database: source development requires Rust 1.91+, a C/C++ toolchain, libcypher-parser, and SuiteSparse GraphBLAS.

What are the alternatives to hydradb?

Neo4j, Memgraph, JanusGraph. Our HydraDB build succeeded in 249 seconds, but the 133-second test run stopped at a missing graphblas library, so the repository is buildable in our sandbox without being test-clean there.

Setup2/5Build passed, but native GraphBLAS was missing when tests linked
Docs5/5Source, Docker, runtime checks, Helm, and failure modes are explicit
Community3/54,098 stars and current issue activity, but code last pushed August 19
Maturity2/5v0.1.1 with open mutation, paging, and error-mapping questions

Who it’s for

Database teams specifically evaluating disaggregated graph storage on S3-compatible infrastructure.
Rust developers prepared to inspect query, storage, index, and failure semantics before production use.
Kubernetes operators who can manage separate query and indexing roles, TLS, object-store credentials, and local cache volumes.
Neo4j-driver users whose queries fit HydraDB's documented OpenCypher subset.

Who it’s NOT for

Teams wanting the lowest-effort graph database: source development requires Rust 1.91+, a C/C++ toolchain, libcypher-parser, and SuiteSparse GraphBLAS.
Applications that require full OpenCypher behavior: the README describes a practical subset, and open issue 216 asks for common numeric scalar functions.
Buyers who need a settled self-hosted mutation path today: open issue 196 reports that the documented Docker local mode returned errors for the reporter's create and delete cycle.
Operators unwilling to ship AGPL-3.0 server changes under the same license when providing a network service.
Teams that require a mature release train: the newest repository tag is v0.1.1, and GitHub returned no latest release object.

Setup reality

Our sandbox installed 309 Rust packages in 42 seconds. The build succeeded in 249 seconds. Tests ran for 133 seconds and exited 101 because the linker could not find -lgraphblas while compiling the slatedb-graph-kernel test library. The log does not establish whether another failure would appear after that library is available.

The source guide requires Rust 1.91+, C/C++ build tools, libcypher-parser, SuiteSparse GraphBLAS, and the just command runner. A local node also needs an auth-token file, store and cache directories, several graph identity variables, and RUST_MIN_STACK=33554432.

Production adds S3-compatible credentials, TLS, advertised Bolt addresses, cache volumes, and separate data-node and indexer workloads. The published container can run a single local node, but bind mounts must be writable by the selected user. The repository includes a Dockerfile and Helm chart, while our scan found no top-level tests directory.

HydraDB makes object storage the durable graph layer

HydraDB puts graph records, write-ahead logs, manifests, and traversal indexes in S3-compatible storage. Query nodes keep replaceable local caches and serve reads or canonical mutations. Separate indexers build immutable traversal structures in the background. That division is the project's reason to exist: a node can disappear without taking the durable graph with it, and query capacity can scale separately from index construction.

This architecture is more specific than a claim of being a fast graph database. Reads pin one SlateDB snapshot, and indexed traversal combines that compiled base with the visible write-ahead-log tail. Object-store leases select an active writer for each cell. Clients connect over Bolt 5.x or HTTP, while strong reads explicitly refresh from object storage before the query snapshot is pinned. Those choices make sense for a team already designing around replaceable compute and durable buckets.

What happened when we ran it

Our sandbox cloned commit 6a2fbb1 and installed 309 Rust packages in 42 seconds. The normal build completed successfully in 249 seconds. The checkout was 4.3 MB, with 156 files and about 106,143 lines of source. We found 2 CI workflow files, a Dockerfile, and no top-level tests directory. The successful build is meaningful because this project crosses Rust, C, storage, networking, and sparse-matrix code.

Tests ran for 133 seconds and ended with exit code 101. The final linker invocation for the slatedb-graph-kernel test library could not find -lgraphblas, after which Cargo stopped with one compilation error. HydraDB's README names SuiteSparse GraphBLAS as a source prerequisite. The log proves the library was unavailable to that link step; it does not prove that installing it would make every test pass.

Source development needs two native graph libraries

The documented source route requires Rust 1.91 or newer, a C/C++ toolchain, libcypher-parser, SuiteSparse GraphBLAS, and just. Ubuntu users get explicit package names. macOS users need a separate Homebrew tap for the Cypher parser and environment paths when invoking Cargo directly. The guide also explains why the official Rust installer is preferred over Homebrew's current keg-only rustup formula.

Running a node adds configuration that a successful compile cannot check. The local recipe creates store and cache directories, writes an authentication token, names the graph, cell, and node, binds Bolt and HTTP addresses, and sets RUST_MIN_STACK to 33554432. The README warns that without that stack setting a node can answer readiness and then abort on its first query. Its verification therefore performs a write and reads the result back instead of trusting an open port.

The container route removes compilation, not database operations

The published image includes graph-node and graph-indexer, with current tags intended for amd64 and arm64. A local container can use host directories as its object store and cache. The documented command runs as the host UID and GID because the image's default user may not be able to write a bind mount. That is a precise setup warning, and exactly the kind that keeps a first storage operation from looking like a database defect.

A production cluster still needs object-store credentials, TLS certificates, authentication, advertised Bolt addresses, local cache volumes, and separate resource choices for query nodes and indexers. The Helm chart covers services, network policies, disruption budgets, and optional Prometheus integration. HydraDB centralizes those pieces around its architecture, but it does not turn a distributed database into a one-container production deployment.

OpenCypher support is useful and deliberately incomplete

The README describes support for typed relationships, bounded variable-length paths, predicates, ordering, pagination, aggregation, OPTIONAL MATCH, UNION, and batched UNWIND writes. It also exposes snapshot-scoped path procedures that can evaluate several source and target values together. Neo4j drivers can use routed URIs, which lowers the client-side cost of an evaluation.

The word subset matters. Open issue 216 requests numeric functions such as abs, ceil, and round. Issue 196 reports that an evaluator using the latest Docker image could read through the local HTTP endpoint but received errors during create and delete attempts. That issue is a report, not our reproduced result, yet it is serious enough that a trial should begin with the exact mutation cycle the application needs.

Current issues show interest, while v0.1.1 remains early

The repository's last code push was August 19, 2026, and its newest tag is v0.1.1 from August. GitHub listed 4,098 stars and 146 combined issues and pull requests when fetched. Issues were still being opened and updated on September 21, including query functions and mappings that currently turn distinct storage or traversal errors into generic server failures. That is active scrutiny, but recent issue creation is not the same as a recent fix.

Open issue 67 also says the current read path materializes a full result before paging it. We are not repeating the performance estimates in that report because our lab did not run a query benchmark. The actionable fact is narrower: teams expecting large paged results should inspect the execution path and reproduce it with their own graph before choosing HydraDB for that workload.

Adopt the architecture only when you need the architecture

HydraDB is most convincing as a focused systems project: durable graph state in object storage, disposable compute, separate indexers, snapshot reads, and familiar client protocols. Its documentation is unusually candid about native packages, stack size, bind-mount ownership, and the difference between readiness and a real write. That makes it possible to evaluate without pretending the setup is smaller than it is.

The v0.1.1 tag and open query-path questions keep it in trial territory for most teams. If S3-native graph durability is central, the 249-second successful build is a reasonable invitation to continue after installing the documented native libraries. If the architecture is merely interesting, an established graph server or a PostgreSQL extension will leave fewer new failure modes for your team to own.

Alternatives

ProjectWhat it isPick it when
Neo4jThe established property-graph database behind the Bolt protocol and Cypher ecosystem.pick this instead when client compatibility, documentation, and production history matter more than object-store-native architecture.
MemgraphAn in-memory, Cypher-compatible graph database built for live queries and analytics.pick this instead when low-latency in-memory graph work is the goal and S3 is not the durable core.
JanusGraphA distributed graph database designed to sit on established storage backends.pick this instead when you prefer a longer-running distributed graph project and can operate its external storage stack.
Apache AGEA PostgreSQL extension that adds graph storage and Cypher queries to an existing database.pick this instead when PostgreSQL operations are already familiar and a separate graph cluster would be excess machinery.

What people are saying

  1. [github-trending] hydra-db/hydradb

Sources

  1. HydraDB repository and README
  2. HydraDB architecture
  3. HydraDB issue 196: local Docker mutation cycle
  4. HydraDB issue 214: public error mapping
  5. HydraDB issue 67: result materialization before paging

More data reviews

DouYin_Spider · helix-db · abu · FinceptTerminal · pathway · weekly · the whole board →