Bolt Driver Compatibility Matrix
ArcadeDB’s Neo4j BOLT protocol implementation is certified against every official Neo4j driver — Java, JavaScript, Python, .NET, and Go — driven by a single, language-neutral conformance spec. Every driver is proven against the full feature matrix, and every unsupported cell is an explicitly documented limitation, never a silent omission.
|
The full driver × feature × version matrix is generated from CI and is the authoritative source. It is published and kept current in the ArcadeDB repository:
The matrix on this page summarizes the certified feature areas. Consult the generated matrix above for exact per-version results. |
Certified Feature Areas
| Area | Scenarios | Status |
|---|---|---|
Connection |
|
Certified |
Authentication |
Basic auth (valid / invalid credentials); scheme |
Certified |
Transactions |
Autocommit; explicit |
Certified |
Causal consistency |
Bookmarks (read-after-write across sessions) |
Certified |
Multi-database |
Per-session named-database selection; isolation across databases |
Certified |
Result handling |
Streaming |
Certified |
Type round-trip |
Node, Relationship, Path; temporal ( |
Certified |
Errors |
|
Certified |
Protocol |
BOLT 3.0 / 4.0 / 4.4 and 5.0–5.4 negotiation; |
Certified |
Error Codes
Every failure carries the Neo4j status code that describes it, so a driver can tell a mistake in your request from a problem with the server, and retry only what is worth retrying.
Selecting a database. These are the first errors a driver can meet, because the database is resolved before anything else runs:
| Code | Meaning |
|---|---|
|
The name in the |
|
The database exists but cannot serve the request right now - it is closed, or the server has not finished opening its databases. The same request succeeds once it is available, so a retry is worthwhile. |
|
The user is not allowed to reach that database. A permissions problem, not a database one. |
|
The database is genuinely broken - corruption, an I/O failure. This is the only case that is the server’s fault. |
Transactions. BEGIN, COMMIT and ROLLBACK all report the same code for the same underlying failure:
| Code | Meaning |
|---|---|
|
A concurrent modification or lock contention. Drivers retry a managed transaction on this code automatically. |
|
A query or transaction deadline ran out. Retrying with a longer timeout is a decision for the caller, so drivers do not retry it on their own. |
|
The operation was refused for permission reasons. |
|
The fallback when the failure matches none of the above. |
Before 26.10.1, BEGIN and ROLLBACK reported Neo.ClientError.Transaction.TransactionNotFound for
every failure, and all database-selection failures reported Neo.DatabaseError.General.UnknownError. If your
application branches on the status code, a conflict on BEGIN is now retried by the driver instead of failing,
and a wrong database name is no longer indistinguishable from a broken server.
|
Documented Limitations
These cells are deliberate, documented differences rather than defects:
-
Auth
none— always rejected; ArcadeDB requires credentials. -
Unauthenticated
RUN— the "reject a query before authentication" scenario cannot be exercised through any official driver, because every driver completes the handshake before exposing query methods. It is therefore marked not-applicable rather than tested. -
Heterogeneous HA BOLT ports — clusters whose nodes expose BOLT on different ports must declare each node’s client-reachable address in
arcadedb.ha.serverList(see Routing and High Availability). -
RID/UUID— serialized as strings (no native BOLT type). -
BigDecimal/ oversizedBigInteger— down-converted todouble(possible precision loss).
Certified Drivers and Versions
Each driver is pinned for PR-gating CI and re-tested nightly across a wider version band, so a driver-side release that breaks compatibility is caught quickly. The pinned versions live in the driver-version matrix.
| Language | Driver | Certified version bands |
|---|---|---|
Java |
|
4.4.x (legacy), 5.x, 6.x |
JavaScript |
|
5.x, 6.x |
Python |
|
5.x (LTS), 6.x |
.NET |
|
5.x, 6.x |
Go |
|
5.x |
For the advertised server identity these results are measured against, see Server Identity and Feature Envelope.