โ–ธ Documentation

Reference

Known Limitations

What AsanagiDB's Gremlin support doesn't cover yet. If a step or behavior isn't mentioned here, it's expected to work as documented in the Apache TinkerPop reference docs.

OLAP graph algorithms

pageRank(), connectedComponent(), peerPressure(), shortestPath() and program() aren't implemented. These need a distributed GraphComputer execution model; AsanagiDB is a single-node OLTP engine.

Bulk I/O through a traversal

io(), read() and write() aren't implemented. Use the dedicated import tooling instead โ€” csv, GraphSON, APOC and LDBC dataset imports are all supported at the CLI.

Service invocation

call() isn't implemented โ€” there's no pluggable service registry. SMT solving is reachable through the dedicated logic_prove MCP tool rather than through call().

Traversal configuration

with() and the TraversalSource-level modulators โ€” withStrategies(), withSack(), withBulk(), withPath() โ€” are parsed but have no effect. sack() itself works, seeded from its first operation; withSack()'s explicit initial value isn't wired up.

repeat() modulator order

until()/emit() work when they follow repeat() โ€” repeat(...).until(...), the common form. Placing them before repeat() โ€” until(...).repeat(...), the pre-check idiom โ€” isn't recognized.

Multi-step repeat() bodies

A repeat() body containing more than one step isn't dispatched correctly; single-step bodies like repeat(out()) work as expected. Separately, repeat() submitted as a Gremlin string rather than as driver bytecode doesn't populate its sub-steps and will return no results.

match() coverage

Conjunctive patterns with variable binding work. Patterns joined by or(), and patterns referencing an already-bound variable inside a nested where()/not()/and()/or(), aren't supported โ€” the latter returns an error rather than silently returning wrong rows.

Deep, unbounded repeat() at scale

An unbounded traversal that revisits paths without dedup() and needs an exact count several hops deep can exceed the request timeout on real-sized graphs โ€” a scale limitation, not a logic bug. Most real usage bounds this with dedup() or a termination condition.