Wednesday, May 21, 2014

Jackrabbit Oak – the revenge of the JCR API

First of all, congratulations to the Jackrabbit Oak team for making it to the 1.0 release. This is very exciting news for every vendor whose software is based on the JCR API (aka JCR-170) like the Magnolia CMS.

Jackrabbit Oak is the next generation content repository. Its goal is to be "a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications. The Oak effort is a part of the Apache Jackrabbit project. Apache Jackrabbit is a project of the Apache Software Foundation."

And "The implementation should provide more out-of-the-box functionality than typical NoSQL databases while achieving comparable levels of scalability and performance".

So in a nutshell it is a JCR implementation for a world of big data and user generated content, where the NoSQL approach to solving scalability issues has become the mantra of the current generation of web applications. Or in even less words: it brings the MongoDB to the JCR world.

Any vendor whose software uses the Jackrabbit JCR repository will be able to switch the implementation to Oak and gain a lot of interesting functionality, e.g. concurrent content updates. Unlike the original Jackrabbit implementation, which created search indexes automatically, in Oak administrators will need to create indexes just like they used to do in the old DB world. This has long been a demand from real world users, as this allows to fine tune performance to search queries used within your application and will boost performance of queries.

If Oak fulfills its promise, as I am sure it will, Magnolia will be able to reach a new level of scalability. It also means that everybody who claimed that JCR is dead did not fully understand the beauty of a standardized content repository API: the underlying implementation can be changed if needed. And that is exactly what happened.

Here is an architecture overview slide from Jukka Zitting (a fantastic developer whose only known fault is that he is working for the wrong company ;-)). Oak Documentation and Downloads available.

Magnolia will evaluate the status of Jackrabbit Oak in the coming weeks and we'll surely let you know about our findings in the Magnolia Dev Blog.