Our client's website is currently hosted on an AEM (headful architecture) that includes Sling, OSGI, and JCR, rather than a standalone headless UI with React. However, the client is now considering developing a middleware framework that would incorporate Apache Sling and Karaf, with an intent to reuse the existing front-end code AS-IS but with the content married from a new headless CMS (instead of AEM) .
This shift is driven by the desire to avoid the additional costs associated with leveraging the full capabilities of AEM. Instead, they are opting for a more tactical strategy that involves using Apache Sling and Karaf as a bridge to replicate the existing solution without AEM.
The client is familiar with the out-of-the-box functionalities of AEM but is not utilizing them and has no plans to do so in the future. They believe that these features come at a higher cost, which is why they prefer a more tactical approach with an intermediate layer (Apache Sling and Karaf without AEM) to replicate the current solution (AEM).
We are attempting to persuade the client that while AEM offers many advanced features, Adobe has extensively customized Apache Sling to enhance scalability and performance. The chosen tactical strategy (Apache Sling and Karaf without AEM) is expected to face several challenges, including:
- Integration Complexity: Linking Sling with outside systems, such as APIs, means more custom development work is needed.
- Content Synchronization: Creating a system for distributing content adds another layer of work, which is handled automatically by AEM, especially when dealing with cache invalidation.
- Managing Bundle Updates: Any changes to a single bundle require the organization to manually assess how it affects others, leading to updates in the code. Deploying and overseeing a large volume of OSGI bundles can be both time-consuming and error-prone.
- Performance Challenges: Setting up various caching strategies and efficiently managing a high volume of requests can be difficult.
- Security Issues: Building strong security measures, like authentication and authorization, and safeguarding against vulnerabilities such as XSS, demands careful planning and execution.
I am seeking expertise advice here so that I can provide strong points to back my thought process to use AEM instead of standalone Apache Sling and Karaf approach.