Getting started with Guacamole on Rails

02API, Documentation, RubyTags: ,

Please note that parts of this article will not work out of the box with ArangoDB 3.0

Using ArangoDB as your main database is a good idea for various reasons. What I personally like about it is its query language AQL. I used relational databases in the past as my main database and writing statements in a language similar to SQL was a great way for me to get started with ArangoDB.

Having a HTTP based interface (like all the cool kids these days) we could build applications running solely on top of our database. That’s rather nice but then we would have to take care of all the gory details. So for our app we want at least an abstraction layer on top of the HTTP API. Better yet, something assisting us with modeling our domain logic.

Meet Guacamole: A object-document-mapper that takes care of all the busywork and allows you to focus on your domain. More info

ArangoDB 2.3.3


This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.3 is available for download or via your favourite package manager.

ArangoDB 2.3.2


This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.3 is available for download or via your favourite package manager.

Building Hypermedia APIs – FoxxGenerator

00API, FoxxTags:

This is the third and final part of Lucas blog series about building hypermedia APIs. In the previous part, we identified the needed transitions and collected some information about each of them. Begin with blog post one to get familiar with concepts on Hypermedia and JSON.

We can now describe the identified transitions using FoxxGenerator. To make the most common case simple, it defaults to the type follow. Therefore defining our four follow transitions is easy using FoxxGenerator:

Note that at this point we are just defining the transitions, we are not adding them to the statemachine we are describing with the help of FoxxGenerator. In the case of creating a book, we need to add additional information. First of, it is a connect transition. Secondly we also need to define the parameters that this transition needs:

More info

Building Hypermedia APIs – a Design Approach using Statecharts

00API, Architecture, FoxxTags:

This is the second blog post on building hypermedia APIs with the focus on API design. In part 1 Lucas describes the concept of links in JSON.

Imagine we have an API where people can like books and other people can then see, who likes a certain book. We want this API to be highly connected: We don’t want to look up URLs in a documentation, we want to follow links as we know it from the world wide web. All we want to do as the author of the API is give our users a single URL from which they can then follow links to all other resources. This is similar to the way we would do this with a website. Leonard Richardson and Mike Amundsen refer to this as the billboard URL for this reason: If you put this URL on some billboard, people know everything to get started with your API. More info

ArangoDB 2.3.1


This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.3 is available from our download page and through the package manager.

  • recreate password if missing during upgrade
  • fixed issue #1126
  • fixed non-working subquery index optimizations
  • do not restrict summary of Foxx applications to 60 characters
  • fixed display of “required” path parameters in Foxx application documentation
  • added more optimizations of constants values in AQL FILTER conditions
  • fixed invalid or-to-in optimization for FILTERs containing comparisons with boolean values
  • fixed replication of _graphs collection
  • added AQL functions CALL and APPLY to dynamically call other functions
  • fixed AQL optimizer cost estimation for LIMIT node
  • prevent Foxx queues from permanently writing to the journal even when server is idle
  • fixed AQL COLLECT statement with INTO clause, which copied more variables than v2.2 and thus lead to too much memory consumption. This deals with #1107.
  • fixed AQL COLLECT statement, this concerned every COLLECT statement, only the first group had access to the values of the variables before the COLLECT statement. This deals with #1127.
  • fixed some AQL internals, where sometimes too many items were fetched from upstream in the presence of a LIMIT clause. This should generally improve performance.

Building Hypermedia APIs – Links and Forms in JSON

00API, Foxx, GeneralTags:

When we create websites we don’t just create single pages that have no connection to other Web pages. From the beginning, hyperlinks were part of the core concept of the World Wide Web and for that reason HTML. Links are so essential to the Web that they are even used to rank the popularity of the Web pages on search engines. And who hasn’t gone on a journey through Wikipedia clicking link after link? Even though we all know and appreciate the importance of links on Websites, we rarely use links in our Web APIs. More info

Running ArangoDB is as simple as …


I’ve created an automated build repository on docker, so that you can easily start a docker container with the latest stable release. If you miss anything in the container, please let me know. Thanks to frodenas, hipertracker, joaodubas, webwurst who also created dockerfiles.


A distributed open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient sql-like query language or JavaScript extensions.

Start a ArangoDB instance

In order to start an ArangoDB instance run

By default ArangoDB listen on port 8529 for request and the image includes EXPOST 8529. If you link an application container, it is automatically available in the linked container. See the following examples. More info

Do you like ArangoDB?
icon-githubStar this project on GitHub.