AEM

AEM

Top Interview Questions

About AEM

 

Adobe Experience Manager (AEM): An In-Depth Overview

Adobe Experience Manager (AEM) is a comprehensive content management solution for building websites, mobile apps, and forms. It is part of the Adobe Marketing Cloud and is designed to help organizations deliver consistent, personalized digital experiences across channels. AEM combines a web content management system (WCM) with digital asset management (DAM), enabling marketers and developers to work together seamlessly. In today’s digital-first world, where customer experience is a key differentiator, AEM has emerged as a leading platform for enterprises looking to manage content efficiently and deliver high-quality digital experiences.

Key Components of AEM

AEM is a modular and robust platform with several core components:

  1. Sites: This module allows organizations to create, manage, and deliver web content across multiple channels and devices. AEM Sites supports responsive design, multi-site management, and content targeting based on user behavior. It also integrates with Adobe Target for A/B testing and personalization.

  2. Assets (DAM): Digital Asset Management (DAM) is crucial for storing, organizing, and managing digital assets such as images, videos, documents, and audio files. AEM Assets enables marketers to quickly find and reuse content, apply metadata, and automate workflows, reducing time-to-market.

  3. Forms: AEM Forms helps organizations create dynamic forms and documents for customer onboarding, surveys, and transactional processes. It allows for form automation, adaptive forms, and integrations with backend systems to streamline business processes.

  4. Mobile: This module helps in managing mobile apps and experiences, enabling content delivery to smartphones and tablets. It supports mobile-first design, push notifications, and analytics for user engagement.

  5. Communities: AEM Communities is focused on building engaging customer experiences through forums, user-generated content, social media integration, and community management.

  6. Cloud Service: AEM as a Cloud Service offers the benefits of a fully managed, scalable, and always up-to-date platform. It provides continuous deployment, automatic scaling, and enhanced security.


Architecture of AEM

Understanding AEM’s architecture is essential for developers and administrators. AEM is built on Java and uses Apache Sling, OSGi, and Java Content Repository (JCR) technologies:

  1. Apache Sling: Sling is a web framework that maps HTTP request URLs to content resources stored in the JCR repository. It allows for clean URL structures and dynamic content rendering.

  2. OSGi (Open Services Gateway initiative): A modular framework used by AEM to manage bundles (modules) dynamically. It allows developers to update or deploy new features without restarting the system, enabling high flexibility.

  3. Java Content Repository (JCR): AEM uses Apache Jackrabbit as its implementation of JCR. JCR provides a hierarchical storage structure for content, allowing versioning, access control, and search functionality.

  4. Dispatcher: The AEM Dispatcher acts as a caching and load-balancing tool. It helps improve website performance by caching static content and protects AEM instances from security threats.

  5. Author and Publish Instances: AEM uses a dual-instance architecture. The Author instance is where content authors create and manage content, while the Publish instance delivers the content to the end-users. This separation ensures content integrity and scalability.


Features of AEM

AEM provides numerous features that make it a preferred CMS for enterprises:

  1. Drag-and-Drop Content Authoring: AEM offers a WYSIWYG (What You See Is What You Get) editor that allows content authors to drag and drop components to create web pages without technical expertise.

  2. Personalization: AEM integrates with Adobe Target and AI-based analytics to deliver personalized experiences to different user segments based on behavior, location, or demographics.

  3. Multi-Site Management: Organizations operating globally can manage multiple sites with different languages and regions from a single AEM instance, ensuring consistency and reducing duplication of effort.

  4. Responsive Design: AEM supports adaptive and responsive design, enabling content to adjust automatically across desktops, tablets, and mobile devices.

  5. SEO and Marketing Tools Integration: AEM integrates with marketing tools like Adobe Analytics, Target, and Campaign, allowing marketers to optimize content for search engines, analyze user behavior, and improve conversion rates.

  6. Workflows and Automation: AEM provides workflows for content approval, publishing, and asset management. Automated workflows streamline content operations, reduce errors, and ensure compliance with business processes.

  7. Versioning and Rollback: With JCR-based versioning, AEM allows users to track content changes and revert to previous versions if needed, providing better content governance.

  8. Security and Access Control: AEM provides granular access control for users and groups, ensuring that sensitive content is protected and only accessible to authorized personnel.


Benefits of AEM

AEM offers numerous advantages for both technical teams and business users:

  1. Enhanced Customer Experience: With personalized content delivery, multi-channel support, and AI-driven recommendations, AEM helps organizations provide superior customer experiences.

  2. Increased Productivity: Content authors and marketers can create and manage content easily without relying heavily on developers, increasing productivity and reducing operational costs.

  3. Scalability: AEM’s cloud-native deployment options allow organizations to scale effortlessly according to traffic and content demands.

  4. Centralized Content Management: By integrating web content, digital assets, and forms in a single platform, AEM provides a centralized hub for content management, simplifying operations.

  5. Faster Time-to-Market: Automated workflows, reusable components, and DAM capabilities allow organizations to deliver new campaigns and content faster.

  6. Analytics and Insights: Integration with Adobe Analytics and AI-powered insights helps organizations make data-driven decisions to optimize content and improve engagement.


AEM Development and Customization

AEM is highly customizable and offers flexibility for developers:

  1. Components and Templates: Developers can create reusable components and templates for consistent page layouts, which content authors can then use to create web pages quickly.

  2. Client Libraries: These allow developers to manage and include CSS, JavaScript, and other frontend assets efficiently across the platform.

  3. OSGi Bundles: Custom functionalities can be added via OSGi bundles, which can be deployed without restarting AEM, ensuring smooth updates.

  4. Sling Models and Servlets: Developers use Sling Models to bind data from JCR nodes to Java objects, and servlets handle custom requests, enabling advanced application logic.

  5. Integration with Third-Party Systems: AEM can integrate with CRMs, e-commerce platforms, marketing tools, and social media systems, providing a unified digital ecosystem.


AEM as a Cloud Service

Adobe has shifted focus towards AEM as a Cloud Service, a fully managed, cloud-native SaaS version of AEM. Key benefits include:

  1. Automatic Scaling: Cloud service automatically scales resources based on traffic and usage, eliminating manual infrastructure management.

  2. Continuous Updates: Customers get the latest features and security updates without downtime.

  3. High Availability: Cloud service ensures redundancy and reliability, minimizing downtime and disruption.

  4. Simplified Maintenance: Adobe manages infrastructure, patches, and upgrades, allowing organizations to focus on content and customer experience.


Use Cases of AEM

AEM is used across various industries and scenarios:

  1. Retail: Retailers use AEM to deliver personalized shopping experiences, manage product catalogs, and optimize marketing campaigns.

  2. Healthcare: Healthcare organizations leverage AEM to provide patient portals, manage medical content, and ensure compliance with regulatory standards.

  3. Financial Services: Banks and insurance companies use AEM to deliver secure, personalized experiences to clients while managing complex content and workflows.

  4. Media and Publishing: Media companies utilize AEM for managing large volumes of digital assets, publishing content across multiple channels, and monetizing digital experiences.

  5. Government and Education: Public sector organizations use AEM for digital transformation, providing accessible and engaging online services.


Challenges in AEM Implementation

While AEM is a powerful platform, it has its challenges:

  1. Complexity: The platform’s rich functionality can be complex for new users and developers, requiring extensive training.

  2. Cost: AEM is a premium solution with high licensing and implementation costs, which may be a barrier for small organizations.

  3. Performance Optimization: Proper configuration of Dispatcher, caching, and content delivery is essential to achieve optimal performance.

  4. Resource-Intensive Development: Developing custom components, integrations, and workflows requires skilled AEM developers, which may increase project timelines.

Fresher Interview Questions

 

1. What is AEM?

Answer:
Adobe Experience Manager (AEM) is a comprehensive content management solution for building websites, mobile apps, and forms. It is part of Adobe Marketing Cloud and allows organizations to manage digital content and assets efficiently. AEM helps in delivering personalized experiences across multiple channels.


2. What are the key components of AEM?

Answer:
AEM consists of several components:

  1. CRX Repository – Stores content in a hierarchical structure (nodes and properties).

  2. OSGi Framework – Handles modular application development with bundles and services.

  3. Sling Framework – Maps HTTP requests to content resources using JCR nodes.

  4. Dispatcher – Caching and load-balancing tool for AEM.

  5. Author Instance – Used by content authors to create and manage content.

  6. Publish Instance – Serves content to end users after replication.


3. What is the difference between Author and Publish instances in AEM?

Answer:

Feature Author Instance Publish Instance
Purpose Create and manage content Serve content to end users
Access Restricted to content authors Accessible by public users
Replication Content is replicated to publish instance Does not replicate content further
Editing Yes, content editing is allowed No, read-only content

4. What is a JCR in AEM?

Answer:
JCR (Java Content Repository) is a specification for a hierarchical content storage system. In AEM, the content is stored in CRX, which implements JCR. It stores content as nodes and properties, allowing structured, versioned, and searchable storage.


5. What is Sling in AEM?

Answer:
Apache Sling is a web framework that maps HTTP requests to content stored in JCR. It is responsible for rendering content based on request URLs.

  • It uses resource resolution to map URL paths to nodes in the repository.

  • Supports dynamic content rendering using Sling Models and HTL (Sightly) templates.


6. What is the Dispatcher in AEM?

Answer:
Dispatcher is AEM’s caching and load-balancing tool. It helps improve performance and security.

  • Caching: Stores static versions of pages to reduce server load.

  • Security: Protects AEM instances by filtering HTTP requests.

  • Load balancing: Can distribute requests across multiple publish instances.


7. What is a Component in AEM?

Answer:
A component is a reusable building block for creating pages. Components can be:

  • Static – HTML content only.

  • Dynamic – Includes logic to fetch data or render dynamically.

  • Components are created under /apps/project/components and are used by authors in templates.


8. What is a Template in AEM?

Answer:
Templates define the structure and layout of a page.

  • There are Static Templates and Editable Templates.

  • Editable Templates allow content authors to create new pages with a predefined layout and components.

  • Templates are stored under /conf or /apps/project/templates.


9. What is a Page in AEM?

Answer:
A page is a node in the JCR repository that represents a URL and contains content.

  • Created from a template.

  • Includes components which display the content.

  • Stored under /content in the repository.


10. What is a Workflow in AEM?

Answer:
A workflow is a sequence of steps to automate content management processes, such as approval, translation, or publishing.

  • Built using AEM Workflow Engine.

  • Example: Create → Review → Approve → Publish.


11. What is an OSGi Bundle?

Answer:
OSGi (Open Services Gateway initiative) bundles are modular components that can be dynamically installed, started, stopped, or updated in AEM.

  • Bundles contain Java classes, resources, and configurations.

  • Managed using the OSGi Console (/system/console/bundles).


12. What is the difference between Node and Property in JCR?

Answer:

Feature Node Property
Definition Represents an object in JCR Represents an attribute of a node
Storage Can contain child nodes Stores values (String, Boolean, etc.)
Example /content/mywebsite jcr:title = "Home Page"

13. What is HTL (Sightly) in AEM?

Answer:
HTL (HTML Template Language) is a server-side templating language in AEM that separates logic from markup.

  • Replaced JSP for better security and maintainability.

  • Provides easy access to Sling Models and content properties.


14. What is a Sling Model?

Answer:
Sling Model is a Java class that maps content nodes in JCR to Java objects.

  • Annotated with @Model and @Inject.

  • Provides clean separation of backend logic and front-end rendering.


15. What is the difference between DAM and CRX in AEM?

Answer:

Feature DAM (Digital Asset Manager) CRX (Content Repository)
Purpose Stores images, videos, PDFs, and assets Stores website content as nodes
Access Accessible to authors for managing assets Accessed by AEM internally and developers
Example /content/dam/project /content/project

16. What is Replication in AEM?

Answer:
Replication is the process of moving content from the Author instance to the Publish instance.

  • Types: Activate (publish) and Deactivate (unpublish).

  • Managed via Replication Agents configured in AEM.


17. How do you create a new page in AEM?

Answer:

  1. Go to Sites in the Author instance.

  2. Click Create → Page.

  3. Choose a template.

  4. Enter page title and name.

  5. Click Create and then Open.


18. What is a Client Library in AEM?

Answer:
Client Libraries (clientlibs) are used to manage CSS, JS, and other frontend resources.

  • Stored under /apps/project/clientlibs.

  • Can be included in components using data-sly-call or cq:includeClientLib.

  • Allows concatenation and minification of resources.


19. What is the difference between Editable Templates and Static Templates?

Answer:

Feature Static Templates Editable Templates
Flexibility Cannot be modified by authors Can be modified by authors using Template Editor
Location /apps/project/templates /conf/project/settings/wcm/templates
Components Predefined Can add or remove allowed components

20. What are some common AEM interview tips for freshers?

Answer:

  • Understand AEM architecture: Author, Publish, Dispatcher, CRX, OSGi, Sling.

  • Know basic JCR concepts: nodes, properties, and paths.

  • Be familiar with components, templates, and client libraries.

  • Practice simple HTL and Sling Models.

  • Learn how replication and workflows work.

  • Read Adobe documentation to understand latest features.


 

21. What is the difference between Author, Publish, and Dispatcher?

Answer:

Instance Purpose Access Key Function
Author Content creation and management Restricted to authors Create, edit, preview content
Publish Content delivery to end-users Public Serves content; read-only
Dispatcher Caching and load balancing Public Caches pages, protects AEM from attacks, distributes load

22. What are Templates in AEM and why are they important?

Answer:
Templates define the structure and layout of a page. They are important because:

  • Ensure consistency across pages.

  • Control which components can be added.

  • Enable editable templates, giving content authors flexibility.

  • Stored under /conf/project/settings/wcm/templates.


23. Explain the AEM project structure.

Answer:
A typical AEM project structure follows:

/apps                  -> Contains components, templates, clientlibs
/content               -> Stores pages and content nodes
/conf                  -> Editable template configuration
/libs                  -> Out-of-the-box AEM components
/etc                   -> Legacy configurations (older versions)
  • /apps – For custom development.

  • /content – For website content.

  • /conf – For editable template settings.


24. What is a Component Policy?

Answer:
Component policies are rules applied to editable templates that define:

  • Which components can be added in a layout.

  • Default styling or behavior for a component.

  • Helps enforce design and layout standards for content authors.


25. What is a Paragraph System (parsys)?

Answer:
A Paragraph System (parsys) is a container in AEM components that allows authors to add child components dynamically.

  • Example: Add text, image, or video blocks on a page.

  • In editable templates, layout containers often replace the older parsys.


26. What is DAM (Digital Asset Management)?

Answer:
DAM is used to manage digital assets like images, videos, PDFs. Features include:

  • Metadata management – Add tags, descriptions.

  • Versioning – Keep track of changes.

  • Renditions – Generate different sizes of images automatically.

  • Search – Quickly locate assets.


27. What is a Workflow in AEM?

Answer:
AEM Workflow automates content processes. Steps can include:

  • Creation → Author submits content.

  • Review → Reviewer approves or requests changes.

  • Activation → Content is published.

  • Can be visualized in Workflow Model and configured using Workflow Console.


28. What is a Sling Resource?

Answer:
In Sling, everything is a resource. A resource represents a node in the JCR repository and can be rendered using a script.

  • Mapped automatically based on URL.

  • Example: /content/mysite/en/home is a resource representing a page node.


29. What are the different types of AEM components?

Answer:

  1. Static Component – Renders static content (e.g., header, footer).

  2. Dynamic Component – Fetches data from backend or user input.

  3. Container Component – Holds other components (e.g., parsys).


30. What are Client Libraries (clientlibs)?

Answer:
Clientlibs manage CSS, JS, and frontend resources. Features:

  • Store under /apps/project/clientlibs.

  • Can be included in components using <cq:includeClientLib> or data-sly-call.

  • Supports categories, minification, and dependencies.


31. What is the difference between Replication and Activation?

Answer:

Feature Replication Activation
Meaning Moving content from Author → Publish Publishing content
Process Can be manual or automatic Done via replication agents
Purpose Synchronize content Make content available for end users

32. What is a Dispatcher Flush?

Answer:
Dispatcher Flush is used to invalidate cached pages when content is updated.

  • Ensures that the latest content is served to end users.

  • Can be triggered automatically on page activation.


33. What is an OSGi Service?

Answer:
OSGi Services are Java classes registered in the OSGi container to provide functionality across bundles.

  • Annotated with @Component and @Service.

  • Can be injected into Sling Models or other services.


34. What is a Tag in AEM?

Answer:
Tags are metadata labels used to classify and organize content.

  • Stored under /etc/tags.

  • Can be used for search, navigation, and content targeting.


35. What is the difference between a Page Component and a Template Component?

Answer:

Feature Page Component Template Component
Purpose Used on pages for content Defines structure/layout in templates
Flexibility Can be added dynamically Usually fixed on template
Example Text, Image Header, Footer

36. How do you debug in AEM?

Answer:

  • Check error.log and request.log under /crx-quickstart/logs.

  • Use Felix Console (/system/console) to check OSGi bundles.

  • Use CRXDE Lite to inspect nodes and properties.

  • Use Developer Tools (browser) to inspect network and scripts.


37. What is a Component Dialog in AEM?

Answer:
Component Dialog allows authors to edit content for a component.

  • Configured using cq:dialog node under the component.

  • Includes fields like textfields, checkboxes, and dropdowns.

  • Types of dialogs: Classic UI and Touch UI (Coral UI).


38. What is a ContextHub in AEM?

Answer:
ContextHub stores user-specific information for personalization.

  • Tracks user actions, segments, and preferences.

  • Can be used to deliver personalized content based on behavior.


39. What are Replication Agents?

Answer:
Replication agents control how content is replicated from Author → Publish.

  • Configured under /etc/replication/agents.

  • Types: Default, Flush, Deactivate, Activate.

  • Supports synchronous and asynchronous replication.


40. What is the difference between In-place and Blueprint Sites in AEM?

Answer:

Feature In-place Site Blueprint Site
Definition Single website managed on one instance Master site with derived sites
Use-case Simple content structure Multi-site management
Update Direct updates Changes in blueprint propagate to live sites

41. How is versioning handled in AEM?

Answer:

  • Every node in JCR can have version history.

  • Versions are stored under /jcr:system/jcr:versionStorage.

  • Allows rollback to previous versions.

  • Useful for content recovery and auditing.


42. What is an Experience Fragment (XF)?

Answer:
Experience Fragments are reusable sections of a page like banners, promotions, or footers.

  • Can be used across multiple pages.

  • Supports multi-channel delivery (web, mobile, email).


43. What are the different types of AEM Workflows?

Answer:

  1. Approval Workflow – Content review and approval.

  2. Translation Workflow – Automates content translation.

  3. Update Workflow – Propagates changes to multiple pages.

  4. Custom Workflow – Defined by developers using workflow models.


44. How does AEM handle Multi-site Management (MSM)?

Answer:

  • MSM allows content reuse across multiple sites.

  • Blueprint sites serve as master content.

  • Live copies inherit content from blueprints.

  • Supports automatic rollout of changes.


45. What is the difference between Sling Servlet and Sling Model?

Answer:

Feature Sling Servlet Sling Model
Purpose Handles HTTP requests Maps content nodes to Java objects
Trigger URL path Component or resource
Example Custom API endpoints Fetching component properties

46. What is the difference between Classic UI and Touch UI in AEM?

Answer:

Feature Classic UI Touch UI
Interface Older UI, based on ExtJS Modern UI, based on Coral UI
Components Uses cq:dialog Uses cq:dialog (Touch UI compatible)
Editing Limited drag-and-drop Responsive, better authoring experience
Availability Deprecated in AEM 6.3+ Recommended for all versions 6.3+

47. What is a Content Fragment in AEM?

Answer:
Content Fragments are structured content pieces (text, images) not tied to a page.

  • Can be reused across pages and channels.

  • Supports structured templates for consistency.

  • Ideal for headless CMS scenarios where content is delivered via APIs.


48. Explain the AEM Dispatcher caching mechanism.

Answer:
Dispatcher caches static pages and assets to reduce server load:

  • Cache locations are configured in dispatcher.any.

  • Includes ignore rules to prevent caching dynamic pages.

  • Supports cache invalidation via Dispatcher Flush on content update.

  • Helps improve performance and security.


49. How do you configure a new OSGi Bundle in AEM?

Answer:

  1. Create a Maven module for the bundle.

  2. Add OSGi annotations (@Component, @Service).

  3. Build the bundle using Maven (mvn clean install).

  4. Deploy the .jar file to /apps or /install folder.

  5. Verify in OSGi Console (/system/console/bundles).


50. What is the difference between a Resource Resolver and a Request Dispatcher in Sling?

Answer:

Feature Resource Resolver Request Dispatcher
Purpose Maps paths/URLs to resources in JCR Forwards requests to scripts or servlets
Usage Resolving content nodes Rendering or including components
Example /content/mysite/en/home → Page resource Forward request to /apps/mysite/components/page.jsp

51. How is Security managed in AEM?

Answer:

  • User Groups & Permissions – Controlled under User Administration.

  • ACLs – Define read/write access on nodes.

  • Dispatcher Security – Filters malicious requests.

  • SSL/HTTPS – For secure connections.

  • Content Validation – Prevents XSS or script injection in dialogs.


52. What is the difference between a Node Type and a Node in JCR?

Answer:

Feature Node Node Type
Definition Instance of content (e.g., a page) Schema defining structure for nodes
Example /content/mysite/en/home cq:Page
Purpose Holds content and properties Defines allowed properties and child nodes

53. What is a Targeting in AEM?

Answer:
Targeting allows content personalization based on:

  • Audience segmentation (e.g., demographics, location).

  • ContextHub data (user behavior).

  • Supports A/B testing for optimizing content.


54. Explain AEM Multi-Lingual support.

Answer:

  • Supports multiple languages via language copies.

  • Translation can be automated using Translation Workflow.

  • i18n dictionaries store localized strings (/apps/project/i18n).

  • Content is replicated across multiple sites for different locales.


55. What are Experience Fragments vs Content Fragments?

Answer:

Feature Experience Fragment Content Fragment
Definition Reusable page sections with layout and components Structured content without layout
Use Case Multi-channel promotions, banners Headless CMS, API-driven content
Stored /content/experience-fragments /content/dam/content-fragments

56. How do you handle Image Renditions in AEM?

Answer:

  • Original images are uploaded to DAM.

  • AEM generates renditions automatically (thumbnail, web, mobile).

  • Renditions can be customized via workflow or DAM configuration.

  • Use DAM API to programmatically fetch different renditions.


57. What is a CQ5 vs AEM difference?

Answer:

  • CQ5 is the older version of Adobe CQ.

  • AEM (Adobe Experience Manager) is the current version, with enhanced features:

    • Touch UI support

    • Editable templates

    • ContextHub for personalization

    • Better integration with Adobe Marketing Cloud


58. What is the difference between Component, Template, and Page?

Answer:

Feature Component Template Page
Purpose Reusable building block Page structure/layout Actual content instance
Example Text, Image, Banner HomePage Template /content/mysite/en/home
Authoring Can be added to page Chosen while creating page Created by author using template

59. What are AEM Blueprints?

Answer:
Blueprints are master templates for multi-site management:

  • Changes in blueprint can be rolled out to live copies.

  • Useful for multi-regional or multi-language websites.

  • Helps maintain consistency across multiple sites.


60. How do you handle Page Rollouts?

Answer:

  • Use Live Copy feature in AEM.

  • Create a live copy from a blueprint site.

  • Updates in blueprint can be rolled out manually or automatically to live copies.


61. What is a Dispatcher Filter and how is it used?

Answer:
Dispatcher filters control which requests are allowed or denied:

  • Configured in dispatcher.any file.

  • Example: Block URLs containing /bin/ or /system/.

  • Helps secure AEM instances from unwanted requests.


62. What are AEM Overlay Components?

Answer:

  • Overlaying allows customizing out-of-the-box (OOTB) components without modifying the original.

  • Achieved by creating a component in /apps with the same path as /libs.

  • Allows safe upgrades of AEM while keeping customizations intact.


63. How is User Management handled in AEM?

Answer:

  • Managed via User Admin Console (/useradmin).

  • Create Users and Groups.

  • Assign permissions on nodes (read, modify, delete).

  • Supports replication and ACLs for content security.


64. What are Launches in AEM?

Answer:

  • Launches allow previewing future content before going live.

  • Create a launch for a page or site.

  • Editors can make changes without affecting the current live version.

  • Once finalized, launch is activated to the publish instance.


65. How do you do Content Personalization in AEM?

Answer:

  • Use Targeting + ContextHub.

  • Create segments (e.g., logged-in users, location-based).

  • Display different components/content for different audiences.

  • Supports A/B testing for performance optimization.

Experienced Interview Questions

 

1. Explain the AEM Architecture in detail.

Answer:
AEM architecture has three main layers:

  1. CRX (Content Repository) – A Java Content Repository (JCR) storing all content as nodes and properties. Supports versioning, access control, and indexing.

  2. Sling Framework – Maps HTTP requests to JCR content nodes and renders them via scripts (HTL, JSP).

  3. OSGi Framework – Modular framework for services and bundles; supports dynamic deployment and hot-swapping of Java components.

Additional components:

  • Dispatcher – Caching, load balancing, and security.

  • Author Instance – For content creation.

  • Publish Instance – Serves content to users.

  • Replication Agents – Handles content replication Author → Publish.


2. What are the differences between AEM 6.x and previous versions?

Answer:

Feature Previous Versions AEM 6.x
UI Classic UI Touch UI (Coral UI)
Templates Static Templates Editable Templates
Clientlibs Basic support Category-based clientlibs with minification
Personalization Limited ContextHub-based targeting & personalization
Multi-site Management Manual Blueprint & Live Copy features

3. How do you create a Sling Model in AEM?

Answer:
Steps:

  1. Create a Java class under a bundle in /core.

  2. Annotate with @Model(adaptables = Resource.class) or SlingHttpServletRequest.class.

  3. Use @Inject to fetch properties from the JCR node.

  4. Use @Exporter to expose as JSON if needed.

  5. Map it in HTL using data-sly-use.

Example:

@Model(adaptables = Resource.class)
public class TitleModel {
    @Inject
    private String title;

    public String getTitle() {
        return title;
    }
}

4. What are Editable Templates and why are they preferred over Static Templates?

Answer:

  • Editable Templates allow authors to:

    • Drag & drop allowed components.

    • Configure policies (default styling, allowed components).

    • Create new pages dynamically.

  • Static Templates are predefined and cannot be modified by authors.

  • Editable templates improve authoring flexibility and are Touch UI compatible.


5. Explain AEM Workflows and common use cases.

Answer:

  • A Workflow automates content approval, translation, and publishing.

  • Common steps:

    • Participant Step – Manual approval.

    • Process Step – Automatic tasks like content activation.

    • Notification Step – Sends emails.

  • Common workflows:

    • Content Approval Workflow

    • Translation Workflow

    • Custom automated publishing workflows


6. How do you optimize AEM performance?

Answer:

  • Dispatcher Caching: Cache static pages and assets.

  • Content Fragmentation: Use fragments to reduce dynamic rendering.

  • OSGi Bundle Optimization: Disable unused bundles.

  • Lazy Loading: Images and components.

  • Indexing: Create Oak indexes for faster queries.

  • Replication Strategy: Avoid unnecessary replication.


7. What is a Dispatcher and how do you configure caching rules?

Answer:
Dispatcher is a caching and load-balancing tool.

  • Caching: Store static content in a filesystem.

  • Cache Invalidation: Configure /invalidate rules for pages on publish.

  • Filters: Block unwanted HTTP requests (e.g., /bin/, /crx/).

  • Flush Agents: Triggered on content activation.

Example Filter in dispatcher.any:

/filter {
    /0001 { /type "deny" /url "/bin/*" }
    /0002 { /type "allow" /url "/*" }
}

8. Explain CRXDE Lite and its uses.

Answer:

  • CRXDE Lite is a web-based development environment for AEM.

  • Provides access to nodes, properties, components, templates, and clientlibs.

  • Used for:

    • Creating nodes and components

    • Editing templates

    • Inspecting repository content


9. What are Client Libraries (clientlibs) and how do you manage dependencies?

Answer:

  • Clientlibs manage JS, CSS, and frontend resources.

  • Stored under /apps/project/clientlibs.

  • Include using cq:includeClientLib in components.

  • Dependencies: Use dependencies property in .content.xml to ensure proper loading order.


10. What is an Overlay in AEM and why is it used?

Answer:

  • Overlaying allows customization of OOTB components without modifying /libs.

  • Achieved by creating a component in /apps with the same structure as /libs.

  • Benefits:

    • Safe for upgrades

    • Keeps customizations isolated

    • Avoids breaking OOTB functionality


11. Explain Multi-site Management (MSM) and Live Copy.

Answer:

  • MSM allows content reuse across multiple sites.

  • Blueprint Site: Master site used for propagation.

  • Live Copy: Derived site that inherits content.

  • Rollout Configurations: Automatically or manually update live copies when blueprint changes.


12. What are Experience Fragments (XF) vs Content Fragments (CF)?

Answer:

Feature Experience Fragment Content Fragment
Definition Page sections with layout/components Structured content without layout
Use Case Multi-channel content (web, email) Headless CMS & API-driven content
Storage /content/experience-fragments /content/dam/content-fragments

13. Explain Dispatcher Flush and Cache Invalidation Strategies.

Answer:

  • Dispatcher Flush: Invalidates cached pages on publish.

  • Invalidate Rules: Specify which pages, assets, or paths should be removed from cache.

  • Flush Agent: Runs automatically on page activation.

  • Best Practices:

    • Avoid flushing entire cache unnecessarily

    • Flush only updated content for performance


14. What are Oak Indexes and why are they important?

Answer:

  • Oak is the backend repository for AEM 6.x.

  • Oak Indexes: Improve performance of queries (XPath or JCR-SQL2).

  • Types:

    • Property Index – Search based on property value

    • Node Type Index – Search based on node type

  • Without indexes, queries on large repositories are slow.


15. How do you handle personalization in AEM?

Answer:

  • Use ContextHub to track user behavior.

  • Define audience segments (location, device, logged-in status).

  • Target content or components based on segments.

  • Supports A/B testing to measure content effectiveness.


16. How do you debug OSGi bundles?

Answer:

  • Access Felix Console: /system/console/bundles.

  • Check bundle status (Active, Resolved, Installed).

  • Inspect component configuration in /system/console/configMgr.

  • Enable log levels via Apache Sling Logging for debugging.


17. How is versioning managed in AEM?

Answer:

  • Every node can have versions stored in /jcr:system/jcr:versionStorage.

  • Authors can rollback to previous versions using CRXDE Lite or page properties.

  • Supports workflow versioning for approvals and audits.


18. Explain Dispatcher Security Best Practices.

Answer:

  • Block /bin, /crx, /system URLs using filter rules.

  • Limit access to author instance via Dispatcher.

  • Enable HTTPS/SSL for secure traffic.

  • Configure caching for static content only.


19. How do you implement a Custom Workflow in AEM?

Answer:

  1. Create a Workflow Model in /etc/workflow/models.

  2. Add Steps: Process Step, Participant Step, Notify Step.

  3. Implement Java Workflow Process for custom logic.

  4. Associate workflow with pages or assets.

  5. Test and deploy.


20. Explain the difference between CQ5 and AEM 6.x.

Answer:

  • CQ5 – Legacy version with Classic UI and static templates.

  • AEM 6.x – Modern version with Touch UI, editable templates, ContextHub personalization, improved DAM, Oak repository, and multi-site management.


21. How do you optimize AEM queries using JCR-SQL2 or XPath?

Answer:

  • Use indexes to speed up queries.

  • Limit scope using isDescendantNode or path() filters.

  • Avoid fetching unnecessary properties.

  • Use pagination for large results.


22. How do you handle Headless CMS in AEM?

Answer:

  • Use Content Fragments and Experience Fragments.

  • Expose content via Sling Models Exporter (@Exporter) in JSON format.

  • Frontend apps consume content through REST API.

  • Supports multi-channel delivery (web, mobile, apps).


23. What are some common issues in AEM and how do you resolve them?

Answer:

Issue Resolution
Dispatcher caching not updated Check flush agent, filter rules, and cache path
OSGi bundle not starting Check dependencies, bundle state, logs
Slow page rendering Enable Oak indexes, check query performance, optimize components
Broken clientlibs Check category names, dependencies, and inclusion

24. Explain the difference between Author, Publish, and Preview Mode.

Answer:

  • Author: Create/edit content, not public.

  • Publish: Serves content to end-users.

  • Preview: Allows authors to see how content will appear on publish instance.


25. How do you implement Version Rollout for Live Copies?

Answer:

  • Create Live Copy from blueprint site.

  • Configure rollout configuration (auto/manual).

  • Activate pages in blueprint → Live Copies updated automatically.

  • Useful for multi-site content synchronization.


26. What is ContextHub in AEM and how is it used?

Answer:

  • ContextHub is a client-side framework for storing user-specific data for personalization.

  • Allows authors to define audience segments based on:

    • Device type

    • Location

    • User behavior

    • Login status

  • Supports dynamic content rendering via ContextHub profiles and targeted components.

  • Example: Displaying a personalized banner for logged-in users.


27. Explain AEM Personalization Workflow

Answer:

  1. Identify target segments (e.g., new visitors, returning users).

  2. Configure ContextHub to capture user behavior.

  3. Use Targeting Component in a page.

  4. Assign content variations to segments.

  5. Test using Preview Mode and analyze results using Adobe Target/Audience Manager.


28. What are Launches in AEM and how do you use them?

Answer:

  • Launches allow authors to preview and edit future content before going live.

  • Steps to use:

    1. Create a launch from the original page/site.

    2. Make required changes in the launch copy.

    3. Preview and test the launch content.

    4. Activate the launch to publish changes.

  • Useful for campaigns, seasonal content, or coordinated updates.


29. Explain Dispatcher Invalidations and Flush Rules

Answer:

  • Dispatcher caches pages to improve performance.

  • Invalidate Rules: Specify which pages or assets are removed from cache after updates.

  • Flush Agent: Configured in Author instance to trigger automatic cache invalidation.

  • Best practices:

    • Flush only changed content

    • Avoid full cache flush unless necessary

    • Use /replication/agents.publish configuration for automatic flush


30. Explain AEM Multi-site Management (MSM) Concepts

Answer:

  • MSM enables content reuse across multiple sites.

  • Key concepts:

    • Blueprint Site: Master site with content to propagate.

    • Live Copy: Derived site inheriting content from blueprint.

    • Rollout Configuration: Determines how updates in blueprint propagate.

    • Synchronization: Ensures live copies reflect latest changes from blueprint.


31. How do you create and manage OSGi Configurations?

Answer:

  • Access OSGi Web Console: /system/console/configMgr

  • Create configurations for services like:

    • Workflow processes

    • Replication agents

    • Custom bundles

  • Configurations can be:

    • Factory Configurations: Multiple instances of a service

    • Singleton Configurations: Single instance

  • Supports dynamic updates without restarting bundles


32. What are Oak Indexes and how do you improve query performance?

Answer:

  • Oak indexes optimize queries in AEM 6.x repositories.

  • Types of indexes:

    • Property Index: Search by property values

    • Node Type Index: Search by node types

    • Full-text Index: Search by content text

  • Best practices:

    • Limit query scope using isDescendantNode

    • Avoid querying large unindexed repositories

    • Use Lucene or Elastic indexes for full-text search


33. What are AEM Experience Fragments (XF) and their benefits?

Answer:

  • XF are reusable sections of a page that can include components, text, and images.

  • Stored under /content/experience-fragments.

  • Benefits:

    • Reusable across multiple pages or channels

    • Supports multi-channel marketing (web, mobile, email)

    • Reduces content duplication


34. Explain Headless CMS in AEM

Answer:

  • Headless CMS separates content management from presentation layer.

  • Implementation in AEM:

    • Use Content Fragments for structured content

    • Expose content via Sling Model Exporter (@Exporter)

    • Deliver content as JSON for web, mobile, or SPA frameworks

  • Advantages: Multi-channel content reuse, decoupled front-end flexibility


35. Explain AEM Workflows and Custom Workflow Steps

Answer:

  • Workflows automate content processes.

  • Custom Workflow Steps:

    1. Implement WorkflowProcess interface in Java

    2. Annotate as @Component to register as OSGi service

    3. Configure in Workflow Model as a process step

    4. Example: Auto-translation, custom validation, or asset processing


36. How do you manage DAM Renditions?

Answer:

  • DAM stores original assets under /content/dam.

  • AEM automatically generates renditions (thumbnails, web, mobile).

  • Custom renditions can be created via:

    • Workflow Process

    • DAM Update Asset Process

  • Programmatically retrieve renditions using Asset API.


37. How do you handle Dispatcher Security?

Answer:

  • Use Dispatcher Filters to block unauthorized paths: /bin/, /crx/, /system/.

  • Restrict Author instance access from outside network.

  • Enable HTTPS/SSL for secure communication.

  • Regularly audit Dispatcher logs for suspicious requests.


38. What are Live Copies and Rollouts?

Answer:

  • Live Copy: A copy of content inherited from a blueprint.

  • Rollout Configuration: Determines how changes propagate from blueprint → live copy.

  • Rollout Types:

    • Automatic: Updates propagate immediately

    • Manual: Author triggers updates

  • Use case: Multi-lingual sites, regional sites, or campaigns.


39. Explain ContextHub Segmentation & Personalization

Answer:

  • Segments define audience categories based on behavior, location, or device.

  • Use Targeted Components to display specific content for each segment.

  • Supports A/B testing to analyze effectiveness of personalized content.


40. How do you optimize page performance in AEM?

Answer:

  • Use Dispatcher caching for static content

  • Optimize Clientlibs using concatenation and minification

  • Reduce component complexity and server-side rendering

  • Use lazy loading for images and videos

  • Implement Oak Indexes for faster queries

  • Avoid unnecessary replication and workflow triggers


41. How do you troubleshoot OSGi Bundle Issues?

Answer:

  • Check bundle status in /system/console/bundles.

  • Verify dependencies are active and satisfied.

  • Review logs in /crx-quickstart/logs/error.log.

  • Use Felix Console to inspect configurations.

  • Restart bundles if necessary or check bundle activation order.


42. What are AEM Tags and Taxonomy?

Answer:

  • Tags categorize and classify content for search, navigation, or targeting.

  • Stored under /etc/tags.

  • Benefits:

    • Easier content discovery

    • Supports personalization

    • Can be hierarchical (e.g., Category > Subcategory)


43. How do you implement Custom Components in AEM?

Answer:

  • Create component structure under /apps/project/components.

  • Add cq:dialog for author input.

  • Add HTL script (.html) to render content.

  • Optionally add Sling Model for business logic.

  • Include Clientlibs for styling or JS.


44. Explain AEM Editable Templates vs Static Templates

Answer:

Feature Editable Template Static Template
Flexibility Authors can add/remove components Fixed layout/components
Storage /conf /apps
Recommended For modern Touch UI projects Legacy or simple projects
Policy Support Yes (styling, allowed components) No

45. How do you implement AEM Headless Rendering?

Answer:

  • Use Content Fragments with Sling Model Exporter

  • Expose JSON endpoints for frontend consumption

  • Supports SPA frameworks like React, Angular, Vue

  • Allows multi-channel content reuse


46. What are the different types of replication agents in AEM?

Answer:

  • Activate Agent: Publishes content from Author to Publish instance.

  • Deactivate Agent: Unpublishes content from Publish instance.

  • Flush Agent: Clears cached pages in Dispatcher after content changes.

  • Custom Agents: Can be implemented for specialized replication tasks.

Each agent can be configured for synchronous or asynchronous replication. Best practices:

  • Use flush agent for automatic Dispatcher cache invalidation.

  • Keep author instance secure and restrict replication access.


47. What are Overlay Components and why are they used?

Answer:

  • Overlaying allows developers to customize OOTB components without modifying /libs.

  • Steps:

    1. Copy the component from /libs to /apps while keeping the same structure.

    2. Make required customizations.

  • Benefits:

    • Safe upgrades

    • Maintainable customizations

    • Avoid conflicts with OOTB updates


48. How do you implement Multi-Site Management (MSM) in AEM?

Answer:

  • Blueprint Sites: Master sites with content and templates.

  • Live Copies: Derived sites inheriting content from the blueprint.

  • Rollout Configurations: Define how changes propagate (manual or automatic).

  • Use Cases: Regional or multilingual sites, campaigns, or brand-specific microsites.


49. What is ContextHub, and how does it relate to personalization?

Answer:

  • ContextHub stores user-specific data on the client side.

  • Tracks user actions, behavior, location, and preferences.

  • Works with Targeted Components to deliver personalized content.

  • Supports A/B testing, enhancing marketing campaigns.


50. Explain the difference between Experience Fragments and Content Fragments

Answer:

Feature Experience Fragment Content Fragment
Definition Reusable sections of a page including components Structured content without layout
Storage /content/experience-fragments /content/dam/content-fragments
Use Case Multi-channel campaigns Headless CMS, APIs
Personalization Can be personalized Typically static content

51. How do you optimize AEM performance?

Answer:

  1. Dispatcher Caching: Cache static content and invalidate selectively.

  2. OSGi Bundle Optimization: Disable unused bundles.

  3. Oak Indexes: Add property or node type indexes to optimize queries.

  4. Clientlibs Optimization: Combine, minify, and use dependencies.

  5. Lazy Loading: For images, videos, and heavy components.

  6. Workflow Optimization: Avoid unnecessary workflow triggers.

  7. Content Fragmentation: Reuse content instead of duplicating.


52. How do you implement a Custom Workflow Process Step?

Answer:

  1. Create a Java class implementing WorkflowProcess.

  2. Annotate it as an OSGi component (@Component).

  3. Define logic inside the execute method.

  4. Add the step to the workflow model in Workflow console.

Example: Sending automated email after content approval.


53. How do you manage DAM renditions programmatically?

Answer:

  • Use Asset API (com.day.cq.dam.api.Asset) to access original and renditions.

  • Retrieve renditions by name (e.g., cq5dam.thumbnail.319.319.png).

  • Custom renditions can be generated via Workflow Process Step.


54. How do you troubleshoot Dispatcher caching issues?

Answer:

  1. Check dispatcher.any file for correct filter rules.

  2. Verify Flush Agents are configured correctly.

  3. Ensure cache directory permissions are correct.

  4. Check if Dispatcher invalidation URL is reachable from Author.

  5. Use logs (dispatcher.log) to identify caching issues.


55. Explain AEM Editable Templates and Policies

Answer:

  • Editable Templates allow authors to create pages dynamically.

  • Policies: Define:

    • Allowed components for each section

    • Default styling or behavior

  • Benefits: Flexible authoring, Touch UI compatible, reduces dependency on developers.


56. What are Oak Indexes and how do they improve performance?

Answer:

  • Oak is the backend repository for AEM 6.x.

  • Index Types: Property Index, Node Type Index, Full-text Index.

  • Queries on unindexed nodes are slow.

  • Best practices:

    • Define indexes for frequently queried properties

    • Avoid expensive queries on large datasets

    • Use Lucene/Elastic for full-text search


57. How do you implement Headless CMS in AEM?

Answer:

  1. Create Content Fragments or Experience Fragments.

  2. Use Sling Model Exporter to expose JSON endpoints.

  3. Consume JSON from frontend SPA (React, Angular, Vue).

  4. Supports multi-channel delivery (web, mobile, IoT).


58. Explain Versioning and Rollback in AEM

Answer:

  • Every node has version history under /jcr:system/jcr:versionStorage.

  • Authors can rollback content to previous versions.

  • Useful for:

    • Content recovery

    • Audit purposes

    • Undoing unintended changes


59. How do you manage AEM Security?

Answer:

  • User & Group Management: Assign permissions to nodes.

  • ACLs: Control read/write/delete access.

  • Dispatcher Filters: Block unauthorized URLs.

  • HTTPS/SSL: Secure communication.

  • Content Validation: Prevent XSS or script injection in dialogs.


60. Explain AEM Personalization and Targeting Components

Answer:

  • Use ContextHub to define audience segments.

  • Use Targeted Components on pages to show personalized content.

  • Segments can be based on:

    • Device type

    • Location

    • Behavior

    • Login status

  • Supports A/B testing to improve marketing effectiveness.


61. How do you debug OSGi Bundles in AEM?

Answer:

  1. Use Felix Console (/system/console/bundles) to check bundle status.

  2. Verify dependencies are satisfied.

  3. Check error.log for exceptions.

  4. Use Apache Sling Logging Configuration to set log levels.

  5. Restart bundles if necessary, check activation order.


62. How do you handle Multi-Lingual Sites in AEM?

Answer:

  • Use Live Copy and MSM for language versions.

  • Use i18n dictionaries to manage translated text.

  • Translation Workflow automates translation requests.

  • Content is synchronized across different locales.


63. Explain AEM Client Libraries (Clientlibs) and their best practices

Answer:

  • Clientlibs manage CSS, JS, and frontend resources.

  • Use categories to define dependencies.

  • Minify and combine resources for better performance.

  • Avoid duplicate inclusion.

  • Include clientlibs using:

<cq:includeClientLib categories="project.site"/>

64. What is the difference between Author, Publish, Preview, and Dispatcher?

Answer:

Instance Purpose
Author Content creation and management
Publish Serves content to end users
Preview Allows authors to see published content before activation
Dispatcher Caching, load balancing, security

65. How do you implement Custom Components in AEM?

Answer:

  1. Create component under /apps/project/components.

  2. Add cq:dialog for author input.

  3. Add HTL template (.html) for rendering.

  4. Add Sling Model for backend logic (if required).

  5. Include Clientlibs for styling and JS.