Sunday, September 03, 2006

Replacing a repository

They say you should blog about something you like, stick to the subject, be informal, and write something useful. Add subjective knowledge to the community.

My thoughts on the field of content management haven't really evolved much since I began working one month ago, but I have encountered a portal/CMS system which I sooner or later will have to use and develop with, I guess. Now the sorry thing about this portal is that I can't utilize my experience with the Java content repository (JCR) standard JSR-170. The portal vendor *could* implement support for it, but as I guess the internal datastructure is, this would lead to an entire replacement of the existing repository, throwing some years of development and use out of the window.

My gut feeling tells me this would not be worth it at this point. But for the sake of argument, let's wheigh the implications of replacing a homegrown repository with for instance Jackrabbit.

Negative implications

Implementation. The datastructure needs to be re-written. The persistence mechanisms might not be loosely bundled enough, or interfaced in the same way as the JCR, so the old repository can't just be unplugged and replaced with Jackrabbit.

Existing content. There are probably thousands of pages of existing content using the old data structure. Literally this is an implication you get to feel when migrating from one CMS to another, but it also applies when changing the content repository alone. Imagine all the customers that will have to migrate their content when they wish to upgrade to the latest version of the portal.. Ugh.

Positive implications

Developer friendly. I know JSR-170, so I already know how to use the repository. I don't need to spend X weeks learning the repository domain model and its API.

It's a standard. The repo becomes compliant with the standard. Content can be imported and exported between other JCRs.

Free stuff. Jackrabbit has implemented alotta nice features the spec provides, versioning, security, search, transaction management and access control to name a few.

Any more implications? To me, the migration one stands out as the biggest blocker. And as long as the customers don't have a need for stuff like that, JCR-compliance remains a (rather weak) sellng point.

Haven't got any more time now, will try to write back with the "conclusion" later on. In a couple o' weeks I will actually get to meet the lead guy of this portal's development, and I have until then to come up with the arguments to convince him. But first I have to convince myself :)