Skip to main content

Compatibility and capabilities

This page distinguishes three different claims:

  • client compatibility comes from the database vendor;
  • implemented means Nodal has a provider implementation and automated compiler or contract tests;
  • live verified means the repository exercises the feature against the exact database baseline listed below.

Nodal does not infer that a feature exists merely because a driver can connect to a server version.

Version policy

ComponentNodal baselineVendor compatibilityCurrent verification
.NET.NET 10Nodal packages currently target net10.0Build, unit tests, package validation
Neo4j driverNeo4j.Driver 6.3.0Driver 6.x supports Neo4j 4.4.x, 5.x, 2025.x, and 2026.xPackage and compiler tests
Neo4j databaseNeo4j 5.26 CommunityWider connectivity follows the official driver policyLive query, mutation, and rollback baseline; migration compiler/unit verified
Neo4j GDSGDS 2.13 is the official match for Neo4j 5.26GDS must match the server according to Neo4j's compatibility matrixCurrent procedure compiler verified; per-algorithm 2.13 live certification pending
TigerGraphTigerGraph 4.2.4 CommunityNo wider Nodal compatibility promise yetLive REST++ mutation/query baseline; analytics endpoint contract verified

References: Neo4j .NET Driver compatibility and Neo4j–GDS compatibility matrix.

The Docker images in compose.local.yml are the executable source for the live QA versions. Supporting a newer database version requires updating that baseline and passing the live suite; changing only this table is not sufficient.

Dependabot checks NuGet, documentation npm packages, Docker database images, and GitHub Actions every week. Its pull requests target developer. An update PR is a notification, not an automatic compatibility promise: database baselines move only after the relevant compiler and live integration suites pass.

Provider feature matrix

Legend: Yes is implemented; Conditional requires the condition shown; No fails explicitly.

CapabilityNeo4jTigerGraph
Parameterized node filtering and orderingYes, CypherYes, interpreted GSQL
Fixed directed/undirected traversalYesYes
Variable-depth traversalYesConditional: GSQL Syntax V2
Optional matchYesNo
Vertex-simple variable-depth pathYesNo: intermediate aliases are unavailable
Client-managed multi-command transactionYesNo: request or installed-query boundary
Atomic mutation planYesConditional: REST++ or installed mutation query
Migration executionYesConditional: administrative transport
Centrality/community analyticsConditional: compatible GDS and named projectionConditional: configured installed GSQL query
Weighted analyticsAlgorithm-specific GDS capabilityExplicitly declared per installed query
Analytics deployment discoveryLive GDS discovery with bounded cacheConfigured installed-query snapshot
Analytics projection lifecycleYes: explicit create/reuse/dropNot applicable; algorithms use the database graph
Typed shortest-path resultYes: native CypherConditional: configured installed GSQL query
Weighted shortest pathsConditional: GDS Dijkstra, A*, YenConditional: configured weighted installed query

Analytics algorithm matrix

All algorithms below exist in the portable contract. “Compiler” does not mean that the optional database component has been installed or live-certified.

FamilyAlgorithmsNeo4jTigerGraph
CentralityArticleRank, articulation points, betweenness, bridges, CELF, closeness, degree, eigenvector, harmonic, HITS, PageRankGDS stream compiler; deployment allow-list supportedInstalled-query mapping; unavailable until configured
Community and cohesionClique counting, conductance, HDBSCAN, K-core, K-1 coloring, K-means, label propagation, Leiden, local clustering coefficient, Louvain, modularity, modularity optimization, SCC, triangle count, WCC, approximate maximum k-cut, SLLPAGDS stream compiler; deployment allow-list supportedInstalled-query mapping; unavailable until configured
Path findingUnweighted shortest path, all shortest paths, Dijkstra, A*, Yen k-shortest pathsNative Cypher for unweighted paths; GDS compiler for weighted pathsInstalled-query mapping with canonical route response

Neo4j can restrict advertised algorithms to the procedures actually available in a deployment:

var options = new Neo4jOptions
{
Endpoint = new Uri("neo4j://localhost:7687"),
Username = "neo4j",
Password = "secret",
GraphDataScienceEnabled = true,
AnalyticsAlgorithms = new HashSet<GraphAnalyticsAlgorithm>
{
GraphAnalyticsAlgorithm.PageRank,
GraphAnalyticsAlgorithm.Louvain
}
};

Use context.Database.GetAnalyticsRuntime().DiscoverAsync() to read and cache gds.list(), gds.version(), and projection names. The deployment allow-list remains explicit so a newly installed server procedure cannot silently expand application permissions.

TigerGraph requires both the installed-query mapping and an explicit declaration for queries that accept weights:

var options = new TigerGraphOptions
{
Endpoint = new Uri("https://example.i.tgcloud.io/"),
AccessToken = "secret-token",
AnalyticsQueries = new Dictionary<GraphAnalyticsAlgorithm, string>
{
[GraphAnalyticsAlgorithm.PageRank] = "nodal_pagerank"
},
WeightedAnalyticsAlgorithms = new HashSet<GraphAnalyticsAlgorithm>
{
GraphAnalyticsAlgorithm.PageRank
}
};

An unsupported algorithm or semantic option is rejected before database transport. Nodal never downloads the graph to simulate missing server functionality.