I posted an article about a mangled list of AEM interview questions. This blog post has been very popular. Folks are looking for this sort of information.
One question in that list is, “Technology Stack CQ5 and describe each?” I reinterpreted that as, “What is the Technology Stack of Adobe Experience Manager?”
A short blog article can’t completely covered this question, but I can give a quick overview. To speak knowingly about this, a developer will need to do some additional research on their own.
What is the Technology Stack of Adobe Experience Manager?
Adobe Experience Manager is based on Apache Sling. Apache Sling is a Java application that is OSGi-based that uses the Apache Felix engine. Apache Felix is to Apache Sling what Equinox is to Eclipse. Apache Sling uses a JCR (Java Content Repository) object database to store its information. That JCR implementation is built with Apache Jackrabbit. AEM 6 supports the use of Apache Jackrabbit Oak. AEM 5.6.1/CQ 5 used the Apache Jackrabbit 2 JCR.
A good book to read to understand the Apache Felix platform is OSGi and Apache Felix 3.0 Beginners Guide by Walid Joseph Gedeon (Amazon). It shows how to create OSGi bundles and manage the bundle’s life cycle in Apache Felix without using the frameworks that make this easier in AEM. It shows how to do things the hard way. But when things go wrong, it is good to know how the cogs of the machinery are working.
The Apache site has a downloadable Apache Sling jar that can be run as an executable. Unfortunately, the executable is woefully out of date. To get an executable of Apache Sling that contains the most recent features, it has to be built from the source code from Apache. That can be problematic. The emphasis of the project is not to produce a functioning version of Apache Sling. It can be hard to piece together a working Apache Sling server from recent code.
Adobe expands the functionality of Apache Sling and produces their own, enhanced, version of Sling called CRX. To make things a little more confusing, since CQ 5.4 the underlying functionality has been transferred to a framework called Granite. CRX used to be a standalone product. After it started to morph into Granite the standalone version no longer exists. CRX/Granite takes care of much of the lower-level functionality such as user management, data persistence and event management.
On top of the Granite/CRX core, the WCM formerly called CQ was added. This provided the web content management and digital asset management functionality. The Adobe Experience Manager incarnation of the product is not a one-to-one correlation with CQ. AEM is the overall platform name and much more functionality is being added to AEM than when it was in its CQ form. CQ is the rough equivalent of the AEM Sites. The product that adds Scene7 functionality to AEM is called AEM Assets. The product that adds LiveCycle functionality is AEM Forms.