hi marcel On Mon, Sep 10, 2012 at 12:33 PM, Marcel Reutegger <[email protected]> wrote: > hi all, > > while looking through the oak code and also in light of the > recent MongoDB based MicroKernel, I was wondering where > the process boundaries are. right now with the maven build > everything runs in the same process, which is one possible > deployment option. I guess as soon as we have some > alternative MicroKernel implementation that scales well, we > will probably also think about scaling the application on top > of oak. the most obvious solution is to just run the application > multiple times in separate processes and they all connect > to the oak repository. > > there's existing information on that topic, like the stack > with the different layers [0], however it doesn't talk about > where the process boundaries are and where we'd need > a protocol (except for the top level protocols to access > the content through JCR or the Oak API directly). > > so, the question I have is basically about oak-core. is it > intended and designed to run in multiple processes and > access a single MicroKernel instance? that way an application > running in multiple processes would embed an oak-core, > which talks to the MicroKernen. Or is it rather intended > that oak-core runs in a single process and all clients > connect to that single instance?
IIRC the latter should be the standard client/server deployment. applications use the JCR API to access the repository. the JCR API is exposed by oak-jcr. oak-jcr implements the JCR transient space and talks to oak-core for read/write and workspace operations (ns reg, node type reg, access control, versioning, query etc). the obvious process boundaries are 1) between oak-jcr and oak-core (remoting of the oak-core API) 2) beween oak-core and oak-mk (remoting of the MicroKernel API) there's a related jira issue, see [1]. cheers stefan [1] https://issues.apache.org/jira/browse/OAK-162 > > regards > marcel > > [0] http://wiki.apache.org/jackrabbit/OakComponentStructure
