“AQL has given us the ability to create what would otherwise be unthinkably complicated requests with relative ease. “Queries run very fast and AQL is so intuitive to learn that even our Product Owners and Business Analysts are now writing huge queries… The Foxx framework helped us to reduce greatly our development time.” It also includes what the company calls SmartGraphs and Satellite Collections, both of which are intended to boost the performance of complex queries (graphs, JOIN-operations and so on) in enterprise-scale deployments. The Enterprise Edition, which is a commercial product, has the highest high availability (with Datacenter to Datacenter Replication) and offers additional security features (LDAP, on-disk encryption and so forth). Both Editions support high availability (auto-failover for single instance, cluster with sharding and replication). The product is available either as a Community (open source) or Enterprise Edition. Support is provided for 17 different languages, including Java + Spring Data, Go, Python, JavaScript and Node.js, but the company also offers its own AQL declarative query language, which works across all the ArangoDB supported data models and even lets you combine different data models in one query.
The database is ACID compliant and supports immediate consistency. We would like to see the company doing more to support third part machine learning and other libraries but other than that it is an impressive product, well suited to a number of hybrid use cases.ĪrangoDB is a multi-model database that supports document (JSON), key-value and property graph capabilities with one database core and one declarative query language. Finally, an additional benefit of using a multi-model approach – assuming that one of the models relates to documents – is that you get search as well as operational and analytic processing, which is not generally the case otherwise.ĪrangoDB is both a graph database and a multi-model database. Further, with respect to its multi-model capabilities, ArangoDB offers a query language that allows you to address data in different formats from a single query (if you wish to: you don’t have to). ArangoDB has the advantage of supporting both of these approaches. Another approach is to use a multi-model database, as many use cases (for example, IoT environments) require the processing of both structured and unstructured data. The use of a graph database is one such approach with, amongst other things, the advantage that you only need one copy of the data, as opposed to both relational and NoSQL approaches, which often require that you need to store the data twice (once as columns and a second time as rows), with all the extra costs that that involves. There are lots of different approaches to supporting hybrid environments that require real-time processing of both operational/transactional data alongside analytics. The SmartGraphs mentioned above mean that ArangoDB is one of the very few databases capable of sharding a graph to a cluster and handling graph-traversals in a performant manner, while Satellite Collections support fast joins across sharded collections.
ArangoDB also supports the GraphQL API, which is gaining increased traction in this space, and there is an ArangoSearch capability, which does what its name suggests. The company is also investigating the possibility of supporting other orchestration technologies, such as Docker Swarm. The support for Kubernetes is via a specialised operator that dramatically simplifies deployments of large clusters. The first of these – illustrated in Figure 3 – is a Google V8 engine-based JS framework enabling the creation of JavaScript-based micro-services, while Mesos is an open-source cluster management solution and the company is also a partner of Mesosphere, which provides container orchestration based on Mesos and which helps to support very large datasets. One thing that is unusual is the support for the Foxx framework and Apache Mesos and Kubernetes.