Posts
All Posts
-
Graphs, Agents, and the Characters Between
Using character‑driven metaphors has long helped shape the way people think about Apache TinkerPop and graphs, but this same approach equally helps with other complex systems, like multi‑agent workflows.
-
Long-term agentic memory in Apache TinkerPop using Beads
Using Beads, a memory upgrade for your coding agent, to capture a new graph-based artifact in agentic coding for Apache TinkerPop.
-
Gremlin goes to Gastown
Using Gastown, a multi-agent workspace manager, to build Gremlator for Apache TinkerPop.
-
TinkerPop 3.8.0 Reflections
Reflections on TinkerPop 3.8.0’s release strategy, bridging stable Gremlin semantics with future-focused upgrades.
-
Semantics of times(0)
Unpacks subtle differences in Gremlin’s repeat step when
times(0)is used -
constant() is Not inject() – A Follow-Up
Distills the core distinction between Gremlin’s
constant()andinject(). -
Unique Vertex Label Anti-pattern
Warns against the anti-pattern of unique vertex labels in graph databases and advocates for categorical labeling.
-
Eager and Lazy tree()
Differentiates eager and lazy
tree()semantics in Gremlin. -
dedup() on Path objects
Details deduplication nuances for Path objects in Gremlin, stressing effects of path labeling on result sets.
-
tree() Node Equality
Explains the behavior of
tree()node equality in Gremlin and how unique nodes shape traversal output structure. -
Use of local() Revisited
Revisits the
local()step in Gremlin, clarifying its use case amid common confusion withScope.local. -
If-Then Semantics
Advocates for readable if-then patterns in Gremlin, comparing
coalesce(),choose(),sideEffect()andoptional(). -
Thinking in VertexPrograms
Discusses OLAP-style Gremlin and custom VertexProgram implementations for specialized graph analytics.
-
Subgraphing without subgraph()
Reviews alternatives to Gremlin’s
subgraph()step for non-JVM languages, focusing on edge list extraction. -
Removing Backtracking
Encourages Gremlin query refactoring by removing excessive backtracking for clarity and performance.
-
Use of local()
Distinguishes Gremlin’s
local()step frommap()andflatMap(), highlighting its role in object-local processing. -
Restricting simplePath()
Examines Gremlin’s
simplePath()for cycle filtering and advanced path control usingfromandtomodulators. -
profile() and Indices
Shows how Gremlin’s
profile()step exposes query optimization potential and performance issues around indices. -
Inserting a Vertex Using a Map
Explains efficient ways to insert vertex properties in Gremlin using Maps and advocates for simplifying with a DSL.
-
Grouping Edge Directions
Demonstrates techniques for grouping and analyzing edge directions in Gremlin to understand message flows.
-
Maps as Keys
Highlights language-specific issues of using Maps as keys in Gremlin and practical workarounds for compatibility.
-
Static and Dynamic Map Instances
Compares static vs dynamic Map creation in Gremlin and how object equality impacts traversal results.
-
WTF - What the fold()
Demystifies Gremlin’s
fold()step and illustrates its importance in stream reduction and transformation. -
constant() Is Not inject()
Clarifies the practical differences between Gremlin’s
constant()andinject()steps for value transformation. -
A Nulled Union
Explores Gremlin’s
choose()step and new handling of nulls for flexible conditional logic in graph traversals.