Features listed in this section should no longer be used, because they are considered obsolete and may get removed in a future release. They are currently kept for backward compatibility. There are usually better alternatives to replace the old features with:
Leader/Follower Deployment Mode: The Leader/Follower deployment type is deprecated and already removed from documentation. Active Failover and OneShard databases in clusters are better alternatives.
Skiplist and hash indexes: Skiplist and hash indexes have been deprecated in 3.9 and will be removed in a future version of ArangoDB. Currently, they are an alias for a persistent index.
Bundled NPM modules: The bundled NPM modules
graphql-sync, ` highlight.js
, andtimezone` have been deprecated in 3.9 and will be removed in a future version of ArangoDB. If you want to use NPM modules in your Foxx service, please refer to the Foxx guide.
Batch Requests API: The batch request REST API is deprecated and will be removed in a future version. Instead of using this API, please use the HTTP Interface for Documents that can insert, update, replace or remove arrays of documents.
PUT method in Cursor API: The HTTP endpoint
PUT /_api/cursor/<cursor-id>in the Cursor REST API is deprecated and will be removed in a future version. Please use the drop-in replacement
POST /_api/cursor/<cursor-id>instead. The POST endpoint is functionally equivalent to the PUT endpoint, but does not violate idempotency requirements prescribed by the HTTP specification.
Fulltext indexes: The fulltext index type is deprecated from version 3.10 onwards. It is recommended to use ArangoSearch for advanced full-text search capabilities.
Simple Queries: Idiomatic interface in arangosh to perform trivial queries. They are superseded by AQL queries, which can also be run in arangosh. AQL is a language on its own and way more powerful than Simple Queries could ever be. In fact, the (still supported) Simple Queries are translated internally to AQL, then the AQL query is optimized and run against the database in recent versions, because of better performance and reduced maintenance complexity.
Accessing collections by ID instead of by name: Accessing collections by their internal ID instead of accessing them by name is deprecated and highly discouraged. This functionality may be removed in future versions of ArangoDB.
Old metrics REST API: The old metrics API under
/_admin/metricsis deprecated and replaced by a new one under
/_admin/metrics/v2from version 3.8.0 on. This step was necessary because the old API did not follow quite a few Prometheus guidelines for metrics.
Statistics REST API: The endpoints
/_admin/statistics-descriptionare deprecated in favor of the new metrics API under
/_admin/metrics/v2. The metrics API provides a lot more information than the statistics API, so it is much more useful.
Replication logger-follow REST API: The endpoint
/_api/replication/logger-followis deprecated since 3.4.0 and may be removed in a future version. Client applications should use the REST API endpoint
/_api/wal/tailinstead, which is available since ArangoDB 3.3.
db.<collection-name>.unload()and their REST API endpoints
PUT /_api/collection/<collection-name>/unloadare deprecated in 3.8. There should be no need to explicitly load or unload a collection with the RocksDB storage engine. The load/unload functionality was useful only with the MMFiles storage engine, which is not available anymore since 3.7.
From v3.5.0 on, the system collections
_modulesare not created anymore when the
_systemdatabase is first created (blank new data folder). They are not actively removed, they remain on upgrade or backup restoration from previous versions.
- Outdated AQL functions: The following AQL functions are deprecated and
their usage is discouraged:
See Geo functions for substitutes.
bfsoption in AQL graph traversal: Using the bfs attribute inside traversal options is deprecated since v3.8.0. The preferred way to start a breadth-first traversal is by using the new
orderattribute, and setting it to a value of
overwriteoption for insert operations (either single document operations or AQL
INSERToperations) is deprecated in favor of the
overwriteModeoption, which provides more flexibility.
minReplicationFactorcollection option: The
minReplicationFactoroption for collections has been renamed to
minReplicationFactoris specified and no
writeConcernis set, the
minReplicationFactorvalue will still be picked up and used as
writeConcernvalue. However, this compatibility mode will be removed eventually, so changing applications from using
Outdated startup options
The following arangod startup options are deprecated and will be removed in a future version:
--database.old-system-collections(no need to use it anymore)
--arangosearch.threads-limit(use the following options instead):
--rocksdb.exclusive-writes(was intended only as a stopgap measure to make porting applications from MMFiles to RocksDB easier)
--http.allow-method-override: this option allows incoming HTTP POST request to override the actual HTTP method used by setting one of the special HTTP headers
x-http-method-override. This was originally intended for very restricted callers, which only supported HTTP GET and HTTP POST, but seems very unnecessary nowadways.
--http.hide-product-header: whether or not to hide the
Server: ArangoDBheader in all responses served by arangod.
--network.protocol: network protocol to use for cluster-internal communication. The protocol will be auto-decided from version 3.9 onwards.
--query.allow-collections-in-expressions: allow full collections to be used in AQL expressions. This option defaults to
falsefrom version 3.9 onwards and will be removed in a future version. It is only useful to enable it when migrating from older versions.
The following options are deprecated for arangorestore:
The following startup options are deprecated in arangod and all client tools:
Obsoleted startup options: Any startup options marked as obsolete can be removed in any future version of ArangoDB, so their usage is highly discouraged. Their functionality is already removed, but they still exist to prevent unknown startup option errors.
arangoimp executable: ArangoDB release packages install an executable named arangoimp as an alias for the arangoimport executable. This is done to provide compatibility with older releases, in which arangoimport did not yet exist and was named arangoimp. The renaming was actually carried out in the codebase in December 2017. Using the arangoimp executable is deprecated, and it is always favorable to use arangoimport instead. While the arangoimport executable will remain, the arangoimp alias will be removed in a future version of ArangoDB.
@arangodb/graph/traversalis also deprecated since then. The preferred way to traverse graphs is via AQL.
graph functions are deprecated:
(arangosh) or from within Foxx are deprecated:
Instead of using these methods, you should use the generic
collection.ensureIndex(...)method, which provides a superset of all the deprecated methods. Also see Creating an index.