Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Advantages of using Jackrabbit Oak over MongoDB

We are building a news website similar to a blogging platform or a CMS. Users can write articles, post comment, like and share. We are newbies and are unable to decide between Jackrabbit Oak and MongoDB?

I went through the following thread When to use JCR (content repository) over other options?. I understood that JCR allows to organize your content in a structure that closely matches your needs. I think this can be accomplished in MongoDB also. The answer compares JCR to RDBMS rather than NoSQL DBs like Mongo.

Also JCR Oak seems a bit complex so I would prefer to keep the stack simple and invest time on MongoDB - Unless Jackrabbit offers features which are extremely important and not present in MongoDB.

Can somebody explain is there any killer feature in JCR Oak over MongoDB?

like image 254
Abhishek Nalin Avatar asked Sep 12 '15 06:09

Abhishek Nalin


People also ask

How does Oak repository differ from Jackrabbit 2?

Touched properties: Jackrabbit 2 used to generate a PROPERTY_CHANGED event when touching a property (i.e. setting a property to its current value). Oak keeps closer to the specification and omits such events. More generally removing a subtree and replacing it with the same subtree will not generate any event.

What is JCR and oak?

Jackrabbit Oak is a complementary implementation of the JCR specification. It is an effort to implement a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications. See the Jackrabbit Oak website for more information.

How do I use Apache Jackrabbit?

To get started with Jackrabbit you should first become familiar with the JCR API. Download the JSR 170 specification, browse the API documentation, check our introduction to JCR levels, or read some of the JCR articles to understand the content repository model that Jackrabbit implements.


2 Answers

We are finally going ahead with Cassandra.

  1. Through my research I found out that JCR doesn't seem to have a large active community and the amount of tutorials is also limited. Mongo is far ahead of JCR and is being used in production at several companies. Could not find any killer feature in JCR over MongoDB.

  2. I also read several blog posts that although Mongo is a great DB and easy to start development - after a while if your website is growing fast scalebility might create some challenges and performance might also got hit. See one of the blog post here: http://patrickmcfadin.com/2014/02/11/mongodb-this-is-not-the-database-you-are-looking-for/

  3. Although we are not worried about scalebility right now but I found merit in masterless architecture of Cassandra, CQL being almost similar to SQL and there are performance benchmarks posted on PlanetCassandra that shows Cassandra scales linearly.

like image 122
Abhishek Nalin Avatar answered Sep 24 '22 23:09

Abhishek Nalin


JCR (Java Content Repository) is only a API Specification. Apache Jackrabbit OAK is the complementary implementation of the JCR. Oak supports multiple underlying storages for content, like NoSQL, RDBMS, File System. So the interesting thing about Jackrabbit OAK is that it can work on top of MongoDB. So you can have JCR and MongoDB at the same time.

like image 35
Tomasz Szymulewski Avatar answered Sep 20 '22 23:09

Tomasz Szymulewski