right blob img min
background img

What you can’t do with Cassandra

  • Multi-model: Cassandra is a partitioned row-store database. It does not support any other data model. If your application requires a graph or key/value store, you would have to use a second database technology like Titan or DataStax Enterprise Graph to support graphs, thereby adding complexity and costs. Being native multi-model, ArangoDB allows you to use one database for both and also run queries efficiently on data stored in different models.
  • Unified Query Language: ArangoDB Query Language (AQL) supports all three data models (k/v, document, graph) with their respective data access patterns (Projections, Joins, Traversals, more). In addition, querying special data types like text or geo-spatial is natively supported by AQL. All data models and data types can be freely combined in a single AQL query. To do the same in Cassandra, one would have to learn CQL and Gremlin for graphs.
  • Complex Transactions: Cassandra does not support ACID transactions. With ArangoDB, developers can use complex transactions to span multiple documents and collections, or to run aggregations. ArangoDB supports multi-document & multi-collection transactions (single instance; single document transactions in cluster setting).
  • Scalability needs and ArangoDB: ArangoDB is cluster-ready for each model and multi-model usage. Unlimited scale-up capabilities thanks to C++ core balanced with scale-out. ArangoDB cluster architecture supporting independent scaling for serving high read/writes volumes and data storage, if needed.
  • Extensibility: Use existing data-centric microservices or run your own in a dedicated JavaScript framework Foxx within ArangoDB, providing e.g. a single API call for complex graph traversals.
  • Lower TCO: Knowing a multi-model database means applying the same knowledge to diverse use cases and lets developers move much faster. ArangoDB can be used for a broad range of different use cases with native multi-model approach and thereby simplify the needed tech stack and operational footprint.

Feature MongoDBArangoDB
General
Initial Release 20092012
License AGPLv3 / CommercialApache 2 / Commercial
Commercial Friendly Licensenoyes
Written inC++C++
Data-Modeldocumentmulti-model
documents, graphs, key-value
Schema freeyes
additional schema validation
yes
schema validation with Foxx
Data formatJSON / BSONJSON / VelocyPack
Data StorageMMAPv1/WIREDTIGERMMFiles/RocksDB
Persistence to diskyesyes
Journalingyesyes
Cluster
Auto-Shardingyesyes
Replicationasyncsync / async
Replication conflict resolutionMaster/AgentMaster/Master
Master/Agent
Elastic Scalabilitynoyes (also on K8s)
Zero Configurationnoyes
native Apache Mesos Supportnoyes,
including persistent primitives
Transactions
Transaction ModelACIDACID
Multi-Document Transactionsyesyes*
Multi-Collection Transactionsyesyes*
Querying
Declarative Query LanguageNoAQL
One sql-like query language for all data-models
JoinsAggregation Frameworkno
Advanced path-finding with multiple algorithmsnoyes
TinkerPop Supportnoyes
Text search (indexing / queries)yes / yesyes / yes
Geospatial (indexing / queries)yes / yesyes / yes
Extensibility
Microservice SupportNo
(only JS for map/reduce jobs)
Microservice framework Foxx
based on Google V8 **
Server-Side Functionsyesyes
Security
EncryptionTLS / SSLTLS / SSL
Authenticationyesyes
Role-based access controlyesyes ***
Attribute level via Foxx framework
Auditingyes
(enterprise version)
yes
(enterprise version)
Administration
Web-based GUI (self-contained)noyes
Cluster friendly GUInoyes

* In single server setups, ArangoDB supports full ACID transactions for multi-document & multi-collection transactions. In a cluster setup, ArangoDB only supports multi-document & multi-collection transactions for non-sharded collections. Single document transactions are supported for shared collections.* In single server setups, ArangoDB supports full ACID transactions for multi-document & multi-collection transactions. In a cluster setup, ArangoDB only supports multi-document & multi-collection transactions for non-sharded collections. Single document transactions are supported for shared collections.

** Including full-text search for arbitrary strings, prefix searches as well more advanced functionality like relevance, ranking, word normalization, removing stop-words, identifying word-boundaries that work across multiple collections. multiple collections.

*** Easily create a REST API for data centric use cases and add any missing functionality.

**** ArangoDB supports all basic security requirements. This includes LDAP-based authorization and User Management at database and collection levels. By using ArangoDB’s Foxx microservice framework, users can create even field-based access control.