Usage & Enterprise Capabilities
ArangoDB is the leading open-source multi-model database, designed to eliminate the complexity of running multiple specialized databases. By natively supporting three distinct data models—documents, graphs, and key-value pairs—within a single database engine, ArangoDB allows you to model your data as flexibly as your application requires.
Whether you are performing high-speed JSON document lookups or exploring deeply nested graph relationships, the ArangoDB Query Language (AQL) provides a single, declarative syntax for all your operations. This "multi-model" approach simplifies your architecture, reduces operational overhead, and ensures that your data layer can evolve alongside your business.
Self-hosting ArangoDB gives organizations a highly scalable, distributed data hub that can handle a wide variety of workloads while maintaining strict control over data placement and high availability.
Key Benefits
Architecture Simplicity: Replace multiple databases (Document, Graph, KV) with one system.
Unified AQL: One language for all queries, regardless of the underlying data model.
Scalable Graph Performance: Perform deep traversals across massive graph datasets.
Full-Text Integration: Combine search, graph, and document queries in a single operation.
Operational Efficiency: Simplified backups, monitoring, and scaling across your entire data stack.
Production Architecture Overview
A production ArangoDB Cluster consists of:
Coordinators: Stateless nodes that handle client requests and distribute work.
DB-Servers: Stateful nodes that store shards of data and perform computations.
Agency: A highly available consensus group (Raft) that manages cluster state and metadata.
Load Balancer: Standard reverse proxy to distribute traffic to Coordinators.
Persistent Storage: High-performance SSDs/Persistent Volumes for DB-Servers.
Implementation Blueprint
Implementation Blueprint
Prerequisites
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose -y
sudo systemctl enable docker
sudo systemctl start dockerDocker Compose Production Setup (Single Node)
Deployment of a standalone instance for development or lightweight self-hosted apps.
version: '3'
services:
arangodb:
image: arangodb:latest
container_name: arango
ports:
- "8529:8529"
volumes:
- arango_data:/var/lib/arangodb3
environment:
- ARANGO_ROOT_PASSWORD=strongpassword123
restart: always
volumes:
arango_data:Kubernetes Production Deployment (Recommended)
The ArangoDB Kubernetes Operator is the preferred tool for cluster management.
# Install the Operator
helm repo add arangodb https://arangodb.github.io/kube-arangodb
helm install kube-arangodb arangodb/kube-arangodb --namespace arango-admin --create-namespace
# Deploy a Cluster
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/master/examples/simple-cluster.yamlBenefits:
Automated Lifecycle: Upgrades, backups, and scaling handled automatically.
Self-Healing: The operator ensures that failed nodes are replaced and shards are rebalanced.
Declarative Config: Manage your entire database topology via standard Kubernetes manifests.
Scaling & Sharding Strategy
Shard Management: Distribute shards across multiple DB-Servers to balance the load.
Satellite Collections: Replicate small, frequently joined collections to every DB-Server for near-instant joins.
Coordinator Scaling: Add more Coordinators to handle increases in concurrent client connections.
Backup & Security
ArangoDump: Use the official CLI tool for logical backups of individual databases or the entire cluster.
Authentication: Always enable authentication and use encrypted connections (SSL/TLS).
Encryption at Rest: Ensure the data volumes on the host system are encrypted.
Firewalling: Restrict access to port 8529 to only trusted internal networks.