Foxx Hackathon: Dive into ArangoDB Microservices | ArangoDB ’13

While the ArangoDB team is finishing the most wanted replication feature, there is another baby which needs our attention: Foxx.

Lucas, Jan, Frank and Michael have spread the word about Foxx and collected feedback from the community. Now it’s time for the next step: we will have our second FOXX hackathon on July 26th-28th in Cologne – and you are invited to join the party :-).

A quick reminder: FOXX is a nice, little Javascript application framework on top of ArangoDB. Using Foxx, the frontend application speaks through Foxx with ArangoDB. No Node.Js/Rails/Symfony/whatever backend is required. This is especially useful for creating APIs in no time in Single Page Applications (SPAs).

Who should attend?

  • You are a developer and you are interested in another approach to build frontend driven apps.
  • You have something in mind you would like to build with FOXX or you want to help us making FOXX better. Some topics we have in mind: authentication, ease of use, deploying apps.
  • People from the community told us that they want to try: Using ClojureScript’s new lightweight processes (not bound to threads) together with FOXX
  • You want to meet like-minded people and have fun
  • You can’t resist a challenge.
  • You don’t own an ArangoDB/Foxx T-Shirt yet. 😉

Some Javascript experience is required, but you don’t have to be an expert at all! (more…)

More info...

ArangoDB ’13: Replication & Sharding for Scalability

UPDATE: ArangoDB 2 introduced sharding! 🙂

Original blog post:
In ArangoDB’s google group there was recently an interesting discussion on what ArangoDB should offer in terms of replication and sharding. For the rest of you who does not follow the posts in the group, I have copied Frank Celler’s answer into this post:

Frank writes:

We will start with a master-slave, asynchronous replication for 1.4. This has at least the following advantages:

  • It is a good fit for most use cases.
  • It will allow us to implement backup as “slave”.
  • It easily gives you redundancy by setting up multiple instances.
  • It gives you read-scaling.

There are also drawbacks. For example, you need to manually select and switch masters in case of fail-over. However, restricting to a simple solution (which is still hard enough to implement) should allow us to release V1.4 this summer. If you think about MySQL, you will see that in most case a master-slave replication is sufficient.

The next step will be master-master replication. This, however, requires more complex protocols like Paxos to elect a master and at least three nodes. We have to decide, if this will be in version 1.5 or maybe already 2.0. We have to see how much has to be changed.

(more…)

More info...

Ideas and Facts from Scotland.js in Edinburgh | ArangoDB ’13

Test Driven Development

I have been one of the lucky attendants of scotland.js in Edinburgh recently.
It was a really nice & informative conference, thanks to all people that made it possible.
I did really like to see that TDD is reaching the front-end developers finally.
A lot of useful tools for this have been presented by James Shore, Bernard Kobos and Sebastian Golasch.
In ArangoDB, TDD is in action all day and I am looking forward to improving our front-end testing even further using these awesome tools.

 

Front-end Development meets NoSQL

Furthermore several talks focussing on front-end development have been given, e.g. by Gregor Martynus presenting Hoodie.js.
These front-end talks and my discussions with other attendees gave me the impression that front-end developers spend a lot of time deciding which database they should use. (more…)

More info...

ArangoDB 1.3.0 Released: Explore New Features | ArangoDB ’13

This version is deprecated. Download the new version of ArangoDB

Features and Improvements The following list shows in detail which features have been added or improved in ArangoDB 1.3. ArangoDB 1.3 also contains several bugfixes that are not listed here.

Changes to the Datafile Structure As the datafile structure has changed, please read the

upgrade manual carefully.

Rapid API Development with FOXX A preview of the forthcoming Foxx is contained in 1.3. Please note that this is not the final version, Foxx is still experimental. Foxx is a lightweight Javascript “micro framework” which allows you to build applications directly on top of ArangoDB and therefore skip the middleman (Rails, Django, Symfony or whatever your favorite web framework is). Inspired by frameworks like Sinatra Foxx is designed with simplicity and the specific use case of modern client-side MVC frameworks in mind. The screencast at

http://foxx.arangodb.com explains how to use Foxx. (more…)

More info...

Foxx Screencast Part 2: Dive Deeper | ArangoDB ’13

It has taken some time, but now part 2 of the Foxx Screencast is available. I talk about some more advanced topics of Foxx and also plans for the future.

https://www.youtube.com/embed/d3TPtXEGhfk?rel=0

More info...

ArangoDB 1.3 Alpha1 Release & First Foxx Screencast | ArangoDB ’13

Starting today you can install the first Alpha of the upcoming release of ArangoDB version 1.3. Some of the new features are:

* ArangoDB Foxx: A lightweight way to define APIs directly on top of ArangoDB
* Traversals: Define traversals to explore your graphs stored in ArangoDB
* A new and improved Frontend: Featuring a new design and various improvements
* And more: Multi-Collection transaction support, user defined functions in AQL, more builtin AQL functions and AQL improvements, bug-fixes…

ArangoDB Foxx: The first screencast If you want to get a first look at ArangoDB Foxx, you can now see our first screencast. Lucas talks about the motivation and goals of Foxx and introduces you to the basics. A second screencast will follow with more advanced techniques like our Repositories and Models:

How to install it?

  • If you are on a Mac and using Homebrew, you can install it now via brew install --devel arangodb.
  • If you are compiling ArangoDB by yourself, checkout the branch 1.3 from github and compile it.
  • if you are using Linux, we have create package for the usual distributions. You can download them from here.
More info...

Foxx – a lightweight Javascript application framework for ArangoDB

Edit: From version 1.4 the ArangoDB user manual available online also includes the documentation for FOXX. For the last months we have been working on Foxx – a brand new Javascript framework on top of the upcoming version of the free and open source NoSQL database ArangoDB. Foxx allows you to build APIs directly on top of the database and therefore skip the middleman (Rails, Django, Symfony or whatever your favorite web framework is). Foxx is designed with simplicity and the specific use case of modern client-side MVC frameworks in mind. There are a couple of very interesting scenarios for Foxx: * You want to build a Single Page Web Application: most of the business logic is in the Javascript frontend. The backend’s most important task is to persist the data and send data to the client plus a bit of auth, modify, validate logic.  In this case ArangoDB plus a Foxx application is all you need as a backend. * Another use case is a mobile app either native or HTML5. Again you’ll have most of the logic already in the frontend (the app in this case). With Foxx you can create your API very easily. And as you don’t have a large full-size MVC stack included, your backend will be very, very fast. You might want to consider Foxx even as lightweig


ht, easy-to-learn alternative to

Node.js.

(more…)

More info...

ArangoDB 2013: Simplify Database Management with Auto-Increment

The most recent versions of ArangoDB offer more detailed control over what values will be auto-generated for the _key and _id attributes of documents. They also allow using predictable auto-increment sequences.
(more…)

More info...

German Video: NoSQL Meets Mobile Cologne | ArangoDB 2013

Last week Jan (core member of ArangoDB and the brain behind AQL and many other parts) was invited by “mobile.cologne” – a user group here in Cologne dealing with mobile development.

In this talk Jan gives a general overview on nosql databases and the different flavors. He explains how to query a nosql database and he evaluates how a nosql database can be used in a mobile app.

Warning: The talk is in German. If you want to hear it in English, let us know in the comments. 🙂

“NoSQL meets mobile.cologne” by Jan Steemann.

More info...

Getting Started with ArangoDB & Symfony: Part 1 | ArangoDB 2013

This is part 1 (of 4) of an introduction to the use of ArangoDB together with Symfony 2. You'll find the links to the other parts of this tutorial at the end of this text.

In this tutorial we will implement a very simple movie database as an example of how to use ArangoDB together with Symfony 2. We assume for the tutorial that you know the basic concepts of Symfony2. No prior ArangoDB knowledge is required.

The demo shows how to create, edit, update and delete movies, how to select a list of movies from the database in two different ways. We’ll use the simple query API for most examples. The “search for a topic” feature uses ArangoDB’s query language (AQL), a convenient sql-like way to query ArangoDB.

You can download the completed demo at Github.


A short word on ArangoDB

Warning - a paragraph of marketing ahead! ;-) ArangoDB is an open-source mostly-memory database with a flexible data model for documents and graphs for modern web applications.  With ArangoDB you build high performance applications in short time - it is schema-less and has a full-blown query language nevertheless (there is no need to write map/reduce functions if your queries get more complicate) . You can even extend ArangoDB by adding your own Javascript/Ruby methods to the database.

Libraries & infrastructure

The following components are used

What’s this? Since Symfony is a PHP framework we need the PHP driver for ArangoDB. The MopArangoDbBundle integrates the PHP driver into Symfony: having this bundle installed, you can config the connection to ArangoDB in the config.yml (note: the bundle also offers a FOSUserBundle integration which is not used in this demo, but might be interested for you if you are looking for a  user management system out of the box).

Installing ArangoDB

Now grab your copy of ArangoDB from the download page and install it. There are binaries available for many common platforms (Linux, OSX, Windows). Make sure that ArangoDB is up and running by opening the graphical user interface in your browser:

http://localhost:8529/_admin/html/index.html

Configuring Symfony for use with ArangoDB

First thing we have to do is to tell Symfony that we want to work with ArangoDB. So we add the two required bundles to composer.json and run “php composer.phar update” as usual.

// path/to/myapp/composer.json
"require": {
        …
        "triagens/ArangoDb": "dev-devel",
        "mop/arangodbbundle" : "dev-master"
         …
    },

Note: for this tutorial a feature was added to the ArangoDB PHP driver which is only available in the  “dev-devel” branch at the time of writing this text.

Having MopArangodbBundle installed we can add our connection settings to config.yml

//myapp/app/config/config.yml
mop_arango_db:
    default_connection: main #will be set to the first connection if not present
    connections:
        main:
            host: 127.0.0.1
            port: 8529

We are done.

In Symfony we can now access the default connection to ArangoDB with

$connection = $this->get('mop_arangodb.default_connection');

The end

Congrats, you have reached the end of part 1 the tutorial. There is more:

More info...

Get the latest tutorials,
blog posts and news: