feat: Add ArcadeDB backend driver#1310
Open
lvca wants to merge 4 commits into
Open
Conversation
ArcadeDB is an open-source multi-model DBMS that natively supports graph, document, vector (HNSW), and full-text search (Lucene) in a single engine. ArcadeDB 26.2.1+ ships the Neo4j Bolt wire protocol, allowing the existing neo4j Python async driver to connect directly. This adds: - ArcadeDBDriver using AsyncGraphDatabase (Bolt transport) - 11 operation implementations (entity/episode/community/saga nodes, entity/episodic/community/has-episode/next-episode edges, search, graph maintenance) - ArcadeDB-specific SQL DDL for index creation (range + Lucene fulltext) - GraphProvider.ARCADEDB enum value - ArcadeDB branches in shared query builders (node_db_queries, edge_db_queries, graph_queries, search_filters) - arcadedb optional dependency in pyproject.toml Key design decisions: - Reuses neo4j async driver (no new dependency needed) - Embeddings stored as regular list properties (no vector property API) - Labels stored as node property (single-type-per-vertex constraint) - Batch deletes without Neo4j's IN TRANSACTIONS syntax - Vector similarity computed in Python via numpy (can be optimized with ArcadeDB's native vectorNeighbors() in future iterations) - Fulltext search via CONTAINS predicates (can be enhanced with native Lucene index queries in future iterations) Closes getzep#1259 Co-Authored-By: Claude Opus 4.6 <[email protected]>
Member
|
All contributors have signed the CLA ✍️ ✅ |
Add unit tests for ArcadeDBDriver (driver init, query execution, sessions, health check, transactions, operations properties). Add quickstart example following the FalkorDB pattern. Update helpers_test.py with ArcadeDB driver discovery for integration tests. Update README with ArcadeDB installation, configuration, and architecture sections. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Author
|
I have read the CLA Document and I hereby sign the CLA |
danielchalef
added a commit
that referenced
this pull request
Mar 9, 2026
ehfazrezwan
added a commit
to ehfazrezwan/neuralscape
that referenced
this pull request
Apr 2, 2026
feafc422 Bump the uv group across 2 directories with 2 updates (#1363) c4e6923b Upstream Zep internal improvements (#1361) e88c09ca @VictorECDSA has signed the CLA in getzep/graphiti#1356 91fe7e0e @majiayu000 has signed the CLA in getzep/graphiti#1351 c52786d2 @dudo has signed the CLA in getzep/graphiti#1350 d631437d @Ker102 has signed the CLA in getzep/graphiti#1339 73cff2cb @chengjon has signed the CLA in getzep/graphiti#1340 8c617639 @rhlsthrm has signed the CLA in getzep/graphiti#1335 e6424bae @pratyush618 has signed the CLA in getzep/graphiti#1332 6f05647c @bsolomon1124 has signed the CLA in getzep/graphiti#1330 10d91394 @spencer2211 has signed the CLA in getzep/graphiti#1326 1ca14686 Add hiring promotion section to README (#1323) 19e44a97 Bump mcp-server to 1.0.2 and require graphiti-core>=0.28.2 (#1317) 77b16096 Bump graphiti-core version to 0.28.2 (#1315) 7d65d5e7 Harden search filters against Cypher injection (#1312) b10b4889 Restore README title and subtitle (#1314) a9065fa9 Refresh README content and fix image refs (#1313) 5a334ec5 @lvca has signed the CLA in getzep/graphiti#1310 45c8040e @jawherkh has signed the CLA in getzep/graphiti#1309 9eb2c9e8 @kraft87 has signed the CLA in getzep/graphiti#1305 334c8faa @adsharma has signed the CLA in getzep/graphiti#1296 b6f9d874 @StephenBadger has signed the CLA in getzep/graphiti#1295 4b91076a feat: Add GLiNER2 hybrid LLM client (#1284) db54ce09 chore: update Docker images to graphiti-core 0.28.1 (#1292) edc71e8e @devmao has signed the CLA in getzep/graphiti#1289 b4ddc55a @carlos-alm has signed the CLA in getzep/graphiti#1288 aa8e81e3 @giulio-leone has signed the CLA in getzep/graphiti#1280 6fdb352f @aelhajj has signed the CLA in getzep/graphiti#1281 2099603d @avianion has signed the CLA in getzep/graphiti#1278 9eb59f7f @themavik has signed the CLA in getzep/graphiti#1214 98f5b5ff fix: replace edge name with uuid in debug log (#1261) 510bd50d @hanxiao has signed the CLA in getzep/graphiti#1257 17a8ea9e @sprotasovitsky has signed the CLA in getzep/graphiti#1254 9d509a2a @Yifan-233-max has signed the CLA in getzep/graphiti#1245 ef52a2ad chore: regenerate lockfiles to drop diskcache (#1244) 76053036 chore: bump version to 0.28.1 (#1243) bde2f797 fix: replace diskcache with sqlite-based cache to resolve CVE (#1238) git-subtree-dir: graphiti git-subtree-split: feafc422c739f0da166241d4804a9830a294d366
Author
|
Please let me know if there is anything I can do. |
verveguy
pushed a commit
to verveguy/graphiti
that referenced
this pull request
Apr 15, 2026
verveguy
pushed a commit
to verveguy/graphiti
that referenced
this pull request
Apr 16, 2026
verveguy
pushed a commit
to verveguy/graphiti
that referenced
this pull request
Apr 16, 2026
verveguy
pushed a commit
to verveguy/graphiti
that referenced
this pull request
Apr 16, 2026
verveguy
added a commit
to verveguy/graphiti
that referenced
this pull request
Apr 17, 2026
Brings in the 20 commits liminis added since this branch forked, including the Kuzu → LadybugDB rename refactor (GraphProvider.LADYBUG, ladybug_driver.py, ladybug/operations/) and the LadybugDriver.close() hardening for clean file-backed teardown. Conflicts resolved in 6 files: - README.md: kept liminis's expanded "Graph Driver Architecture" section (full 11-ABC walkthrough + adding-a-driver guide), and updated the telemetry bullet to read "LadybugDB" instead of upstream's stale "Kuzu". - signatures/version1/cla.json: kept upstream's six new CLA entries appended after PR getzep#1310. - graphiti_core/search/search_filters.py: combined upstream's Cypher injection hardening (validate_node_labels) with liminis's GraphProvider.LADYBUG rename in both node and edge filter constructors. - graphiti_core/search/search_utils.py: combined upstream's validate_group_ids call with liminis's GraphProvider.LADYBUG rename in fulltext_query. - tests/helpers_test.py: kept liminis's three additions — DISABLE_LADYBUG driver registration, LADYBUG_DB env var, and LADYBUG branch in get_driver. - tests/test_graphiti_drivers_int.py: kept liminis's six pytest.skip guards for LadybugDB on tests it doesn't yet support (fulltext indexing, etc.). Note the file rename from test_graphiti_mock.py we did earlier; resolution markers reflected the rename via "liminis:tests/test_graphiti_mock.py". 433 unit tests pass (~10s). Zero new failures versus liminis baseline. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Author
|
Hi guys, anew news on this? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds ArcadeDB as a new graph database backend for Graphiti, as requested in #1259.
ArcadeDB is an open-source (Apache 2.0) multi-model DBMS that natively supports graph, document, vector (HNSW), and full-text search (Lucene) — all in a single engine. ArcadeDB 26.2.1+ ships the Neo4j Bolt wire protocol, allowing the existing
neo4jPython async driver to connect directly with zero additional dependencies.What's included
ArcadeDBDriver— main driver usingAsyncGraphDatabase(Bolt transport)GraphProvider.ARCADEDBenum valuenode_db_queries,edge_db_queries,graph_queries,search_filters)arcadedboptional dependency inpyproject.toml(empty — reusesneo4jcore dependency)Key design decisions
neo4jasync driver via Bolt protocol — no new dependencydb.create.setNodeVectorProperty())DETACH DELETE(no Neo4jIN TRANSACTIONSsyntax)vectorNeighbors()CONTAINSpredicates; can be enhanced with native Lucene index queriesMATCH (node {uuid: ...})for polymorphic queries (like FalkorDB)Usage
Why ArcadeDB for Graphiti
With Kùzu archived after the Apple acquisition (#1132), users looking for a self-contained, local-first graph + vector + fulltext backend now have ArcadeDB as an option:
Closes #1259
Test plan
arcadedata/arcadedb)make check(ruff + pyright)🤖 Generated with Claude Code