What is ArangoDB?
ArangoDB is a native multi-model database that combines documents, graphs, and key-value storage in a single database engine. Unlike other databases that bolt on different data models, ArangoDB was built from the ground up to handle multiple data models efficiently with a unified query language (AQL) that can work across all models in a single query.
With features like ACID transactions, horizontal scaling, and SmartGraphs for distributed graph processing, ArangoDB eliminates the need for multiple database systems and the complexity of keeping data synchronized across different databases. It's particularly powerful for applications that need to handle complex relationships alongside traditional document storage.
ArangoDB Performance Calculator
Memory: 48GB total cluster
Per Node: 333,333 docs
Replication: Configurable (default 2)
Native Multi-Model Architecture
Document Store
Schema-flexible JSON documents with secondary indexes and full-text search.
• Secondary indexes
• Full-text search
• Geo-spatial queries
• Schema validation
Graph Database
Native graph storage with efficient traversals and pattern matching.
• Graph traversals
• Pattern matching
• SmartGraphs clustering
• Social network analysis
Key-Value Store
High-performance key-value access with consistent hashing.
• Consistent hashing
• High-speed lookups
• TTL support
• Atomic operations
AQL - Unified Query Language
Document Query
Find users by age range and city:
FOR user IN users
FILTER user.age >= 25 AND user.age <= 35
FILTER user.city == "San Francisco"
SORT user.created_at DESC
LIMIT 10
RETURN {
name: user.name,
email: user.email,
age: user.age
}
Graph Traversal
Find friends of friends with graph traversal:
FOR vertex, edge, path IN 2..2 OUTBOUND "users/alice"
GRAPH "social_network"
FILTER vertex._id != "users/alice"
RETURN DISTINCT vertex.name
Multi-Model Join
Join document collections with graph relationships:
FOR user IN users
FILTER user.city == "New York"
FOR friend IN 1..1 OUTBOUND user GRAPH "friendships"
FOR order IN orders
FILTER order.user_id == friend._key
FILTER order.total > 100
COLLECT user_name = user.name INTO friend_orders
RETURN {
user: user_name,
high_spending_friends: LENGTH(friend_orders)
}
Real-World ArangoDB Implementations
Barclays
Uses ArangoDB for fraud detection combining transaction data with relationship graphs.
- • Real-time fraud pattern detection
- • Multi-model queries across transactions and relationships
- • Complex traversals for money laundering detection
- • Sub-second response times for critical decisions
Cisco
Leverages ArangoDB for network topology management and IT asset relationships.
- • Network device relationship modeling
- • IT asset dependency tracking
- • Configuration management database (CMDB)
- • Impact analysis for network changes
Adidas
Powers recommendation systems combining product catalogs with user behavior graphs.
- • Product recommendation engine
- • Customer journey analysis
- • Inventory and catalog management
- • Real-time personalization at scale
Deutsche Bank
Utilizes ArangoDB for regulatory compliance and risk management analytics.
- • Regulatory reporting and compliance
- • Risk portfolio analysis
- • Client relationship mapping
- • Complex financial product modeling
Enterprise Features
Clustering & Scaling
- • Automatic sharding with configurable keys
- • SmartGraphs for co-located graph data
- • OneShard databases for optimal performance
- • DC2DC replication for disaster recovery
- • Satellite collections for reference data
- • Automatic failover and self-healing
Security & Compliance
- • Encryption at rest and in transit
- • Fine-grained access control
- • LDAP and Active Directory integration
- • Audit logging and compliance reporting
- • Hot backup and point-in-time recovery
- • SOC 2 Type II certification
ArangoDB Best Practices
✅ Do
- • Design shard keys based on query patterns
- • Use SmartGraphs for distributed graph workloads
- • Leverage AQL's multi-model capabilities in single queries
- • Implement proper indexing strategies for all models
- • Use OneShard for datasets under 100GB
- • Monitor query performance with built-in profiler
❌ Don't
- • Create hot shards with uneven data distribution
- • Use ArangoDB for simple key-value only workloads
- • Ignore transaction boundaries in multi-collection operations
- • Create overly complex graph traversals without optimization
- • Mix transactional and analytical workloads without tuning
- • Skip capacity planning for multi-model workloads