ArangoDB - a native multi-model database
Unlike many NoSQL databases, ArangoDB is a native multi-model database. You can store your data as key/value pairs, graphs or documents and access any or all of your data using a single declarative query language. You can combine different models in one query. And, due to its native multi-model approach, you can build high performance applications and scale horizontally with all three data models.
Native vs. Layered
Many vendors call themselves “multi-model,” but there is an important difference between adding a graph layer to say a key/value or document store and ArangoDB’s native multi-mode approach.
With ArangoDB, using the same core and the same query language for all data models, users can combine different models and features in a single query. ArangoDB doesn’t “switch” between models behind the scenes and it doesn’t shovel data from A to B in order to execute queries. This gives ArangoDB stronger performance advantages when compared to the “layered” approaches.
For more information on performance, see High Performance with ArangoDB.
Each document in ArangoDB can store as many attributes as you like. (The default maximum size is 32MB, but you can configure it for larger documents.) ArangoDB provides a wide feature-set for querying and operating on documents, including horizontally scaled JOIN’s, secondary indexes, and ACID transactions.
Every document has a unique key and stores data as values on attributes. When you store one value to the document, ArangoDB can serve as a modern and highly scalable key/value store. You might find this useful when storing shopping cart entries in an e-commerce platform or managing sensoric data for IoT applications.
ArangoDB provides a mature graph store with a full feature-set, including pattern matching, shortest path, and complete traversals, and it can perform graph queries very fast compared to many leading graph solutions.
When building a graph, ArangoDB creates special documents to represent vertices and edges. These documents contain
_from attributes used in connecting documents. Using an edge index, ArangoDB can process graph queries with high performance.
Each edge and vertex can contain complex data in the form of nested properties, and all graph functions are deeply integrated into the ArangoDB Query Language, (AQL). These allow ArangoDB to compete with other graph solutions on performance. With ArangoDB you can also distribute your graph to a cluster.
When to use ArangoDB
Native multi-model databases shine particularly in three situations:
Staying flexible in developing new ideas
In situations when developing a new product or service, you might not know all your requirements for at the outset. Changes in your product or the need for new features can lead to changes in your data model.With a multi-model database, you are able to easily react to those changes. You can apply your knowledge of one technology to several use cases and requirements.No need to learn a new technology or build a new tech-stack.
Developing software as a team
ArangoDB enables teams to cooperate across use cases. For instance, one team starts work on an application that requires a Document database. In the course of development, members of this team learns tips and tricks about the usage of ArangoDB. Another team begins work on a Graph database.Both teams can exchange their experience with ArangoDB and optimize their usage. This shortens the learning curve, deepens teamwork and reduces the time to get your solutions live.
Combining different data models in one query
No need to build two or three tech-stacks to support your application. These create risky connections between different single-model databases. Instead, ArangoDB is designed it easier to develop modular applications.
Advantages of ArangoDB
As a native multi-model database, ArangoDB minimizes the components that you need to maintain, reducing the complexity of the technology stack for your application or usage. This means a lower total cost of ownership, increasing flexibility and consolidating your overall technical needs.
Simplified Performance Scaling
Applications grow and mature over time. With ArangoDB, you can easily react to growing performance and storage needs by independently scaling with different data models. ArangoDB scales both vertically and horizontally, and if your performance needs decrease, you can just as easily scale down your back-end system to save on hardware and operational requirements.
Reduced Operational Complexity
In the concept of Polyglot Persistence, the goal is to use the best tools for whatever jobs you may have. When working with single-model databases, this can lead to various operational challenges. Certain tasks require a document database, while others require a graph database. Integrating them is a complex task in itself, but creating a large cohesive system with data consistency and fault tolerance between separate, unrelated database systems may prove impossible.
Polyglot Persistence is about choosing the right data model for the right job. A native multi-model database allows you to have polyglot data without the complexity, but with data consistency on a fault tolerant system. With ArangoDB, you can use the right data model for the right job.
Strong Data Consistency
When using multiple single-model databases, data consistency becomes an issue. These databases aren’t meant to talk to each other, which means you need to implement some form of transaction functionality to keep your data consistent between different models.
With ArangoDB, a single back-end manages your different data models with support for ACID transactions. ArangoDB provides strong consistency on a single instance and atomic operations when operating in cluster mode.
Building fault tolerant systems with many unrelated components is a challenging task in itself. When working with clusters, this grows even more difficult. Deploying and maintaining such systems requires deep expertise of several different technologies and technology stacks. Moreover, bringing together multiple subsystems that were designed to run independently imposes significant engineering and operational costs.
The solution to these challenges is a multi-model database and a consolidated technology stack. By design, ArangoDB enables modern, modular architectures with different data models running and works for cluster usage as well.
Lower Total Cost of Ownership
Each database technology you use needs ongoing maintenance, patches, bug fixes and other modifications delivered by the vendor. Each new update has to be tested by a specialized team member and tested for their overall fit into the current system. Using a multi-model database significantly reduces these maintenance costs as it allows you to reduce the number of database technologies you need for your application.
It is a real challenge to provide transactional guarantees across multiple machines and few NoSQL database provide these guarantees. As a native multi-model database, ArangoDB requires transactions to ensure data consistency. ArangoDB provides strong consistency on single instances and atomic single document operations when running in cluster mode.