Hello, I would like to ask for some opinions and get some directions about using Apache Oak technology in our products.
Story bellow: We are building a SaaS system to provide value to our line of business. We have our platform up and running for some time and we are growing our business. However we need a sort of CMS as we need to be able to update content (pages, texts in reports, legal documents like terms of use and privacy policy) without making a new release. Also we have content that needs to be translated into a lot of languages and we need to be able to coordinate the translation process and sync all the i18n content between our system and the translation platform. I believe that a CMS based on Apache Oak is a very good solution to our needs, at least on paper since we don't have any experience with Oak and JCR in production systems. I have attached a sample deployment diagram that I believe we should migrate to. Right now we are missing the Sling CMS and Oak repositories components. We are storing templates and content on disk and need to make a new release to push updates. We can do that quite easy and fast as we have an automated deployment pipeline, but the process will be greatly improved by using Oak features and a CMS. I have a lot of questions and I hope I can get some answers. Some of them might be more appropriate on the Sling mailing list and I will ask them there. I hope this case will server as a nice use case for using Oak and I plan to write some articles with the experience. We have some services: Sling CMS Portal - Main entry point in the App. Displays pages and portal content. Read/Write access to some content in the repo. API Service - API Gateway. Should be able to read/write the Oak repo. API for the business rules. Oak Repository - Store content like: email templates, account/user logos, etc. Report Rendering Service - Used by API to render PDF reports. Needs Read only access to repository. Should work without connection to repository. The amount of content we need to store currently in the Oak repository is under 1GB, stored as files. Questions (with numbers to be easy to refer to): 1. Can we access a single Oak repository from multiple nodes over network? I believe so, but please confirm as the docs don't seem to make this very clear. 2. How stable and how is the performance of RDBDocumentStore? We plan to use it because we have skills and procedures for maintaining and backing up PostgreSQL databases and I would prefer not to complicate the deployment with MongoDB. The bulk of analitical data will be stored in a separate PostgreSQL instance and not in JCR. We need JCR to display pages and some content (email templates, report templates, terms of use and legal pages, etc ). It will not have to support millions of hits per day. 3. Can we have synced copies/repository? We have a service that generates PDF reports: Report Rendering Service. We would like to keep the templates and content in JCR but would like the service to work without a constant connection to the Oak repository. The content changes once a day, and Report Rendering Service should work without a connection to the repository. However, there might be times when we need to force the sync before we deploy a new version of the service. Secondary node seems like the best solution for this use case [1]. FileVault and ColdStandby features seem to allow for this use case as well. 3.a Can Secondary Node run disconnected? 3.b Can Secondary node work with RDBDocumentStore ? 3.c. In case we can sync the repository and some content is versionable, can we select what version to use? I imagine we can with Secondary Node solution. [1] https://jackrabbit.apache.org/oak/docs/nodestore/document/secondary-store.html [2] https://jackrabbit.apache.org/oak/docs/coldstandby/coldstandby.html Regards, Ioan Eugen Stan
signature.asc
Description: OpenPGP digital signature
