ArangoDB v3.9 reached End of Life (EOL) and is no longer supported.

This documentation is outdated. Please see the most recent version at

Spring Data ArangoDB

This integration is a library for accessing data stored in ArangoDB in Spring-based Java application. Spring Data provides a consistent interface for accessing various types of data sources. Spring Data ArangoDB implements this for ArangoDB and provides mapping of Java objects to ArangoDB documents (ODM).

Supported versions

Spring Data ArangoDB is compatible with:

  • all the still supported Spring Boot 2.x versions and related Spring Framework versions
  • all the still supported ArangoDB versions


To use Spring Data ArangoDB in your project, your build automation tool needs to be configured to include and use the Spring Data ArangoDB dependency. Example with Maven (substitute x.x.x with the latest Spring Data ArangoDB version):


There is a demonstration app, which contains common use cases and examples of how to use Spring Data ArangoDB’s functionality.


You can use Java to configure your Spring Data environment as show below. Setting up the underlying driver (ArangoDB.Builder) with default configuration automatically loads a properties file, if it exists in the classpath.

@EnableArangoRepositories(basePackages = { "" })
public class MyConfiguration implements ArangoConfiguration {

  public ArangoDB.Builder arango() {
    return new ArangoDB.Builder();

  public String database() {
    // Name of the database to be used
    return "example-database";


The driver is configured with some default values:

property-key description default value ArangoDB host
arangodb.port ArangoDB port 8529
arangodb.timeout socket connect timeout(millisecond) 0
arangodb.user Basic Authentication User  
arangodb.password Basic Authentication Password  
arangodb.useSsl use SSL connection false

To customize the configuration, the parameters can be changed in the Java code.

public ArangoDB.Builder arango() {
  ArangoDB.Builder arango = new ArangoDB.Builder()
  return arango;

In addition you can use the or a custom properties file to supply credentials to the driver.

Properties file


Custom properties file

public ArangoDB.Builder arango() {
  InputStream in = MyClass.class.getResourceAsStream("");
  ArangoDB.Builder arango = new ArangoDB.Builder()
  return arango;

Learn more