Database guides
Neo4j
Cypher over Bolt, with node labels in the sidebar and results flattened into a grid you can chart or read as JSON.
AddisDB connects to Neo4j over the Bolt protocol on port 7687 and runs Cypher. Node labels are listed in the sidebar the way tables are for a SQL database, and each result row is rendered into the grid.
Who it is for
Graph databases make relationships first-class. In Neo4j, "friends of friends who bought this" is a short traversal instead of a stack of self-joins, and the cost of following a relationship does not grow with the size of the database.
That last claim has a mechanism behind it: relationships are stored as direct pointers between records, so a hop is a dereference rather than an index lookup. A four-hop query over a hundred million nodes costs about what it costs over a hundred thousand — which is exactly the query a relational schema struggles with.
It suits recommendations, fraud rings, identity and access graphs, network and dependency topology, knowledge graphs, and supply chains — anywhere the connections carry as much meaning as the records.
It is the wrong tool for bulk aggregation over every node of a type; that is a scan, and a columnar engine will win.
Set up the database
- Neo4j AuraDB (managed): create an instance and download the credentials file when it is offered — the generated password is shown exactly once.
- Note the connection URI. Aura uses neo4j+s:// with TLS on port 7687.
- Local: Neo4j Desktop, or docker run -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/password neo4j.
- On first login to a self-hosted server you will be asked to change the default neo4j password.
- Create an index on any property you will match on — an unindexed MATCH scans every node with that label.
# A local server: browser on 7474, Bolt on 7687
docker run -p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/a-strong-password -d neo4j:5
Connect from AddisDB
- New Connection → Neo4j under Graph. Port prefills to 7687, database to neo4j and username to neo4j.
- Enter the host from your AuraDB URI (without the neo4j+s:// scheme) and your password.
- Set SSL mode to require for AuraDB.
- Test, then Save.
Port 7474 is the HTTP browser, 7687 is Bolt. AddisDB speaks Bolt — a connection pointed at 7474 will not complete the handshake.
How to query it
MATCH (c:Customer)-[:PLACED]->(o:Order)
WHERE o.total > 500
RETURN c.name AS customer, count(o) AS orders, sum(o.total) AS revenue
ORDER BY revenue DESC
LIMIT 20
Return scalar values rather than whole nodes when you want a readable grid — RETURN c gives you a node object per row, while RETURN c.name, c.email gives you columns. The JSON tab always has the full object if you need it.
Variable-length patterns are where a graph query earns its keep, and also where one can run away from you. Bound the depth: [:KNOWS*1..3] is a traversal, [:KNOWS*] is an invitation to walk the entire graph.
-- Who is within three hops, and how far away
MATCH path = (a:Person {email: $email})-[:KNOWS*1..3]-(b:Person)
RETURN b.name, length(path) AS hops
ORDER BY hops
LIMIT 25
What AddisDB gives you
- Node labels listed in the sidebar so you can see what is in an unfamiliar graph.
- Cypher results flattened into the grid, with the JSON tab for full node and relationship objects.
- Read-only enforcement written for Cypher — CREATE, MERGE, DELETE, SET, REMOVE and DROP are blocked on a read-only connection.
- The Chart view for aggregations, plus AI chat that writes Cypher against your labels.
- The Live Monitor over SHOW TRANSACTIONS, with per-label node counts read from the count store.