Friday, November 15, 2013

Scale out Jackrabbit JCR with Infinispan

Whilst at my daytime job I recently use jackrabbit a lot alongside with Magnolia CMS. As I learned a little how jackrabbit works, I always thought that the way its persisting content serialized to relational databases is not what I would like to have found. Quite a while ago I tried to implement a persistence manager for orientdb, but I found out that the graph capabilities of orientdb that would otherwise perfectly match the jcr content structure are quite useless because of the way persistence is implemented as a key-value store for single nodes in jackrabbit. So when it's a key-value paradigm so why shloud I then use a relational db? That was the idea that came to me yesterday and I today started implementing a little proof of concept that runs on infinispan. One could think of may things with this. Infinispan can persist and serialize on its own, it scales perfectly, and you could even connect multiple jackrabbit instances to a single cluster.

I am keen to hear what you think about this approach. And if you look at the implementation, it is really simple, you could use any key-value store.

Using Mapstruct with Protobuf3