administering-linux
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and troubleshooting. Use when deploying…
Graph database implementation for relationship-heavy data models. Use when building social networks, recommendation engines, knowledge graphs, or fraud detection. Covers Neo4j (primary), ArangoDB, Amazon Neptune, Cypher query patterns, and graph data modeling.
$ npx -y skills add ancoleman/ai-design-components --skill using-graph-databases --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/using-graph-databasesContext preview
The summary Claude sees to decide when to auto-load this skill.
Graph database implementation for relationship-heavy data models. Use when building social networks, recommendation engines, knowledge graphs, or fraud detection. Covers Neo4j (primary), ArangoDB, Amazon Neptune, Cypher query patterns, and graph data modeling.
name: using-graph-databases description: Graph database implementation for relationship-heavy data models. Use when building social networks, recommendation engines, knowledge graphs, or fraud detection. Covers Neo4j (primary), ArangoDB, Amazon Neptune, Cypher query patterns, and graph data modeling.
This skill guides selection and implementation of graph databases for applications where relationships between entities are first-class citizens. Unlike relational databases that model relationships through foreign keys and joins, graph databases natively represent connections as properties, enabling efficient traversal-heavy queries.
Use graph databases when:
**Do NOT use graph databases when**:
DATA CHARACTERISTICS?
├── Fixed schema, shallow joins (≤3 hops)
│ └─ PostgreSQL (relational)
│
├── Already on PostgreSQL + simple graphs
│ └─ Apache AGE (PostgreSQL extension)
│
├── Deep traversals (4+ hops) + general purpose
│ └─ Neo4j (battle-tested, largest ecosystem)
│
├── Multi-model (documents + graph)
│ └─ ArangoDB
│
├── AWS-native, serverless
│ └─ Amazon Neptune
│
└── Real-time streaming, in-memory
└─ MemgraphGraph databases store data as:
(Person {name: "Alice", age: 28})-[:FRIEND {since: "2020-01-15"}]->(Person {name: "Bob"})| Language | Databases | Readability | Best For | |----------|-----------|-------------|----------| | **Cypher** | Neo4j, Memgraph, AGE | ⭐⭐⭐⭐⭐ SQL-like | General purpose | | **Gremlin** | Neptune, JanusGraph | ⭐⭐⭐ Functional | Cross-database | | **AQL** | ArangoDB | ⭐⭐⭐⭐ SQL-like | Multi-model | | **SPARQL** | Neptune, RDF stores | ⭐⭐⭐ W3C standard | Semantic web |
Reference `references/cypher-patterns.md` for comprehensive examples.
// Find all users at a company
MATCH (u:User)-[:WORKS_AT]->(c:Company {name: 'Acme Corp'})
RETURN u.name, u.title// Find friends up to 3 degrees away
MATCH (u:User {name: 'Alice'})-[:FRIEND*1..3]->(friend)
WHERE u <> friend
RETURN DISTINCT friend.name
LIMIT 100// Find shortest connection between two users
MATCH path = shortestPath(
(a:User {name: 'Alice'})-[*]-(b:User {name: 'Bob'})
)
RETURN path, length(path) AS distance// Collaborative filtering: Products liked by similar users
MATCH (u:User {id: $userId})-[:PURCHASED]->(p:Product)<-[:PURCHASED]-(similar)
MATCH (similar)-[:PURCHASED]->(rec:Product)
WHERE NOT exists((u)-[:PURCHASED]->(rec))
RETURN rec.name, count(*) AS score
ORDER BY score DESC
LIMIT 10// Detect circular money flows MATCH path = (a:Account)-[:SENT*3..6]->(a) WHERE all(r IN relationships(path) WHERE r.amount > 1000) RETURN path, [r IN relationships(path) | r.amount] AS amounts
**Use for**: General-purpose graph applications
**Strengths**:
**Installation**:
# Python driver pip install neo4j # TypeScript driver npm install neo4j-driver # Rust driver cargo add neo4rs
Reference: `references/neo4j.md`
**Use for**: Multi-model applications (documents + graph)
**Strengths**:
Reference: `references/arangodb.md`
**Use for**: Adding graph capabilities to existing PostgreSQL
**Strengths**:
Reference: Implementation details in examples/
**Use for**: AWS-native, serverless deployments
**Strengths**:
Reference `references/graph-modeling.md` for comprehensive patterns.
**Anti-pattern** (storing relationships in node properties):
// BAD
(:Person {name: 'Alice', friend_ids: ['b123', 'c456']})**Pattern** (explicit relationships):
// GOOD
(:Person {name: 'Alice'})-[:FRIEND]->(:Person {id: 'b123'})
(:Person {name: 'Alice'})-[:FRIEND]->(:Person {id: 'c456'})// Track interaction details on relationships
(:Person)-[:FRIEND {
since: '2020-01-15',
strength: 0.85,
last_interaction: datetime()
}]->(:Person)// SLOW: Unbounded traversal MATCH (a)-[:FRIEND*]->(distant) RETURN distant // FAST: Bounded depth with index MATCH (a)-[:FRIEND*1..4]->(distant) WHERE distant.active = true RETURN distant LIMIT 100
**Problem**: Nodes with thousands of relationships slow traversals.
Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude
Repo: ancoleman/ai-design-components
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and troubleshooting. Use when deploying…
Data pipelines, feature stores, and embedding generation for AI/ML systems. Use when building RAG pipelines, ML feature serving, or data transformations.…
Strategic guidance for designing modern data platforms, covering storage paradigms (data lake, warehouse, lakehouse), modeling approaches (dimensional,…
Design cloud network architectures with VPC patterns, subnet strategies, zero trust principles, and hybrid connectivity. Use when planning VPC topology,…
Design comprehensive security architectures using defense-in-depth, zero trust principles, threat modeling (STRIDE, PASTA), and control frameworks (NIST CSF,…
Assembles component outputs from AI Design Components skills into unified, production-ready component systems with validated token integration, proper import…