ArangoDB
A multi-model database: JSON documents, key-value lookups, graphs, full-text search and vectors in one engine, queried with one language, AQL.
- What it is
- Graph databases,Document databases
- Type
- Commercial product
- Made by
- Arango (ArangoDB Inc.)
- License
- Business Source License 1.1 since 3.12 (2024), each release converting to Apache 2.0 after four years; the prebuilt Community Edition is under the ArangoDB Community License (internal business use, datasets under 100 GB); Apache 2.0 before 3.12
- Facts checked
- 6 October 2026
What it is
ArangoDB is a C++ server that stores JSON documents in collections on RocksDB. Every document has a _key, so key-value access is just a primary-key lookup. A graph is built from the same pieces: nodes are ordinary documents, and edges are documents in an edge collection whose _from and _to attributes point at two of them. One declarative language, AQL, filters, joins and aggregates documents and walks graphs (FOR v, e, p IN 1..3 OUTBOUND ...) in the same query. ArangoSearch views add ranked full-text search, and vector indexes, built on the Faiss library and trained on data already stored, add similarity search. A cluster has three roles: Agents keep the cluster configuration and elect leaders, stateless Coordinators take queries, and DB-Servers hold shards, each replicated synchronously from a leader to followers. Because a traversal that crosses shards crosses the network, Arango recommends OneShard (a whole database on one node, replicated) for most graph workloads, or SmartGraphs, which shard by an attribute so neighbours stay together.
Since 3.12 the source is under the Business Source License, which forbids offering it as a commercial database service or embedding it in a commercial product. The prebuilt Community Edition is free for internal business use up to 100 GB of data; past the limit a deployment gets two days’ warning, then two days read-only, then shuts down. From 3.12.5 Community includes the features that used to be Enterprise-only, such as SmartGraphs and OneShard. The company, now trading as Arango, sells Enterprise licences and the Arango Managed Platform (AMP, formerly Oasis and ArangoGraph) on AWS and Google Cloud, with a 14-day free trial and prices by quote, and builds an AI-focused Contextual Data Platform on top.
Why teams pick it
- One engine and one query language for documents, graphs, key-value, search and vectors, so there are fewer systems to keep in sync
- AQL mixes traversals with joins, filters, aggregation and ranked full-text search in a single query
- Clusters replicate synchronously with automatic failover; OneShard and SmartGraphs keep graph traversals on one machine
- Since 3.12.5 the free Community Edition includes the former Enterprise features, within its size limit
Watch out for
- No longer open source: the BSL bars offering it as a service or in a commercial product, and Community binaries stop at 100 GB and internal business use, enforced by read-only mode and then shutdown
- No public prices for Enterprise or the managed platform, and AMP runs only on AWS and Google Cloud
- 3.12 removed native Windows and macOS builds, Active Failover, datacenter-to-datacenter replication, Pregel graph processing and LDAP login
- Full ACID guarantees for multi-document transactions apply only on a single server or a OneShard database, not across a sharded cluster
- Vector indexes are trained once on existing data; documents added later are fitted to the original clusters, so recall can drift until you rebuild
Alternatives
What all graph databases have in common →How it fits with other technologies
Create a small graph with python-arango and walk it with AQL · python
# docker run -d -p 8529:8529 -e ARANGO_ROOT_PASSWORD=test123 arangodb
from arango import ArangoClient
db = ArangoClient(hosts="http://localhost:8529").db("_system", username="root", password="test123")
social = db.graph("social") if db.has_graph("social") else db.create_graph("social")
if not social.has_edge_definition("knows"):
social.create_edge_definition(edge_collection="knows",
from_vertex_collections=["people"],
to_vertex_collections=["people"])
people, knows = social.vertex_collection("people"), social.edge_collection("knows")
for key in ("ada", "bo", "cy"):
people.insert({"_key": key, "name": key.title()})
knows.insert({"_from": "people/ada", "_to": "people/bo", "since": 2021})
knows.insert({"_from": "people/bo", "_to": "people/cy", "since": 2024})
# edges are documents too: walk one or two hops out from Ada
cursor = db.aql.execute("""
FOR v, e, p IN 1..2 OUTBOUND @start GRAPH "social"
RETURN {name: v.name, hops: LENGTH(p.edges), since: e.since}
""", bind_vars={"start": "people/ada"})
print(list(cursor))Community, Enterprise and AMP#
Since 3.12.5 all three run the same features. What differs is the licence, how much data you may store and who operates it.
| Community Edition | Enterprise Edition | Arango Managed Platform | |
|---|---|---|---|
| Licence | ArangoDB Community License (binaries); source under BSL 1.1 | Commercial licence | Managed service |
| Dataset size | Under 100 GB; read-only, then shutdown, if exceeded | No limit | Sized per deployment |
| Allowed use | Internal business purposes; no reselling or offering it to third parties | Commercial use | Commercial use |
| Who runs it | You | You (Kubernetes, VMs or bare metal) | Arango, on AWS or Google Cloud |
| Price | Free | By quote | 14-day free trial, then by quote or prepaid credits |
- The Community License text says 100 GB; the server’s size check and the release notes say 100 GiB. Before 3.12, the source and Community Edition were Apache 2.0, and features such as SmartGraphs and OneShard needed Enterprise until 3.12.5.
See it in a real stack
No architecture uses ArangoDB yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2011–2025
In October 2011 Frank Celler pushed the first code of “triAGENS AvocadoDB”, an open-source document database from triAGENS GmbH in Cologne; he and Claudius Weinberger are ArangoDB’s co-founders. Celler’s design notes from March 2012 explain the bets: schema-free documents whose shared structure is stored only once, a real query language, JavaScript running inside the database as an application server, and small clusters with little administration, because “most projects are not becoming the next Amazon”.
In May 2012, to avoid legal trouble with “some other Avocado lovers”, the team renamed it ArangoDB after an avocado variety, and 1.0 shipped that August. It grew into what the company calls a native multi-model database, where graph edges are documents too. RocksDB arrived as a storage engine in 3.2 (2017) and became the default in 3.4 (2018), alongside ArangoSearch; a managed cloud service followed in 2019.
In 2024 ArangoDB 3.12 moved from Apache 2.0 to the Business Source License, and Community binaries got a 100 GB limit, to stop others selling commercial forks. In 2025, 3.12.5 moved the Enterprise features into Community. The company now trades as Arango at arango.ai and pitches its platform as a data layer for AI agents.
Why it’s built this way
- Documents with shared “shapes”
- Celler wanted schema-free data without paying for it: documents with the same structure share one stored description, so access stays fast.
- JavaScript inside the database
- The team believed work should run where the data is, so ArangoDB could store and run JavaScript “actions”.
- Graphs built from documents
- Edges are JSON documents with
_fromand_to, so one storage engine and one query language cover documents, key-value lookups and graph traversals. - Small clusters over huge ones
- The 2012 design aimed at zero-administration clusters on a few servers, on the view that a single node or small cluster fits most projects.
Timeline
- 2011
triAGENS in Cologne commits the first AvocadoDB code in October
- 2012
Renamed ArangoDB in May; 1.0 released in August
- 2017
3.2 adds the RocksDB storage engine
- 2018
3.4 makes RocksDB the default and adds ArangoSearch
- 2019
Fully managed cloud service launches
- 2024
3.12 moves to BSL 1.1; Community binaries limited to 100 GB
- 2025
3.12.5 brings former Enterprise features to Community Edition
- arangodb/arangodb: first commit, configure.ac “triAGENS AvocadoDB”, (c) triAGENS GmbH, Cologne (Oct 2011)
- Frank Celler: ArangoDB’s design objectives (Mar 2012) · archived copy, original
- ArangoDB blog: “AvocadoDB” becomes “ArangoDB” (May 2012) · archived copy, original
- ArangoDB CHANGELOG (1.0.0 on 2012-08-17, 3.2.0, 3.4.0)
- Arango press release: first fully managed multi-model data platform (Nov 2019)
- Arango blog: Evolving ArangoDB’s licensing model for a sustainable future (Feb 2024, updated Mar 2025)
- ArangoDB docs: What’s new in 3.12 (all Enterprise features in Community Edition from 3.12.5)
Sources21 · facts checked 6 October 2026
- arangodb/arangodb README (editions, AMP, Docker quick start)
- arangodb/arangodb: LICENSE (Business Source License 1.1)
- ArangoDB Community License (PDF)
- ArangoDB docs: Incompatible changes in 3.12 (licence change, removed features)
- ArangoDB docs: What’s new in 3.12 (Community Edition features, vector indexes)
- ArangoDB docs: License management (100 GiB limit, read-only, shutdown)
- ArangoDB docs: Data models
- ArangoDB docs: Graphs (edge collections, `_from` and `_to`)
- ArangoDB docs: AQL graph traversals
- ArangoDB docs: Vector indexes (Faiss, training)
- ArangoDB docs: Cluster deployments (Agents, Coordinators, DB-Servers)
- ArangoDB docs: OneShard deployments
- ArangoDB docs: Transaction limitations in clusters
- Arango Managed Platform docs (formerly Oasis; AWS and Google Cloud)
- ArangoDB docs: Use ArangoDB in the cloud (14-day free-to-try tier)
- Arango: Pricing and deployment options
- Arango press release: Contextual Data Platform 4 (Mar 2026)
- ArangoDB docs: Kubernetes operator (kube-arangodb)
- arangodb/arangodb-spark-datasource on GitHub
- arangodb/kafka-connect-arangodb on GitHub (sink connector)
- python-arango docs: Graphs