I like Sling project and Sling features: a super-smart way to add a rest interface to Jcr repositories.
I would like to use Sling for other back-ends, not limited Jcr repositories: how strong is the relationship between Sling and Jcr? How hard is a new Sling implementation that also manages graph or document databases?
On Thu, May 31, 2018 at 4:16 PM, Yuri Simione <[hidden email]> wrote:
> ...I would like to use Sling for other back-ends, not limited Jcr repositories: how strong
> is the relationship between Sling and Jcr? How hard is a new Sling implementation
> that also manages graph or document databases? ...
For historical context: when we created Sling back around 2007 there
were already Way Too Many Java Web Frameworks (TM) around, so we
decided to focus Sling on JCR as a differentiator - while avoiding to
hardcode that decision. And I suppose the vast majority of Sling users
are using it with JCR today.
However, JCR hasn't taken over the world, mostly due (IMO) to the
arrival of NoSQL databases just when JCR and its implementations
became mature - so it makes perfect sense to use Sling with other
We've been working on this, on and off I'd say, and in theory it is
perfectly possible to run Sling without JCR.
In practice, however, I see two things that might get in the way:
1) As few people are using Sling without JCR, and we don't run a
non-JCR integrations test suite there are probably some assumptions or
defaults that will cause some problems
2) As JCR provides lots of functionality out of the box, like search,
versioning, access control etc. you will have to find alternatives for
those things if you need them. Some of our contrib modules might help.
c) Maybe starting with a prototype that still uses JCR in places where
Sling really requires it (which hopefully are very few, or maybe even
none at all? Haven't tried myself lately) but uses another backend for
your application content, mounted as a ResourceProvider.
d) Maybe using a [nojcr] subject line header if discussing here, to
help raise attention
It would be fantastic to have concrete examples of Sling running on