{"id":97562,"date":"2025-04-28T11:21:27","date_gmt":"2025-04-28T05:51:27","guid":{"rendered":"https:\/\/cloudfoundation.com\/blog\/?p=97562"},"modified":"2025-05-03T13:10:56","modified_gmt":"2025-05-03T07:40:56","slug":"aem-development-pdf","status":"publish","type":"post","link":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/","title":{"rendered":"AEM Development PDF"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Understanding_CRUD_Operations_in_AEM\" >Understanding CRUD Operations in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Using_Sling_API_in_AEM\" >Using Sling API in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Using_JSON_Interface_in_AEM\" >Using JSON Interface in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Adding_and_Modifying_Properties_in_AEM\" >Adding and Modifying Properties in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Deleting_Resources_in_AEM\" >Deleting Resources in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Understanding_AEM_Resource_Adaptation\" >Understanding AEM Resource Adaptation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Handling_Node_Properties_in_AEM\" >Handling Node Properties in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Deleting_Resources_in_AEM-2\" >Deleting Resources in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#AEM_API_Choices_Sling_vs_JCR\" >AEM API Choices: Sling vs JCR<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#AEM_Performance_Considerations\" >AEM Performance Considerations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Best_Practices_for_AEM_Development\" >Best Practices for AEM Development<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Enhancing_Development_with_AEM\" >Enhancing Development with AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#How_AEM_Leverages_Sling_API\" >How AEM Leverages Sling API<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Performance_Considerations_in_AEM\" >Performance Considerations in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Understanding_AEM_The_Core_of_Enterprise_CMS\" >Understanding AEM: The Core of Enterprise CMS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Setting_Up_AEM_Instances_Author_and_Publisher\" >Setting Up AEM Instances: Author and Publisher<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#AEM_Hosting_Cloud_vs_On-Prem\" >AEM Hosting: Cloud vs. On-Prem<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#AEM_Sites_and_Pages_Building_Without_Code\" >AEM Sites and Pages: Building Without Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#AEM_Components_The_Building_Blocks\" >AEM Components: The Building Blocks<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#AEM_Author_vs_Publisher_Content_Workflow\" >AEM Author vs. Publisher: Content Workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Understanding_AEM_Components\" >Understanding AEM Components<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#How_Content_Replication_Works_in_AEM\" >How Content Replication Works in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Configuring_Publishers_in_AEM\" >Configuring Publishers in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Exploring_Reverse_Replication_in_AEM\" >Exploring Reverse Replication in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Using_Default_Agents_in_AEM\" >Using Default Agents in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Understanding_AEM_Replication\" >Understanding AEM Replication<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Setting_Up_AEM_Publishers_and_Agents\" >Setting Up AEM Publishers and Agents<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Creating_AEM_Agents_Through_CRXD\" >Creating AEM Agents Through CRXD<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Managing_AEM_Deployment\" >Managing AEM Deployment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#Handling_Dispatcher_Configuration_in_AEM\" >Handling Dispatcher Configuration in AEM<\/a><\/li><\/ul><\/nav><\/div>\n\n<h2><span class=\"ez-toc-section\" id=\"Understanding_CRUD_Operations_in_AEM\"><\/span><strong>Understanding CRUD Operations in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Mastery of AEM CRUD operations &#8211;create, read, update, and delete&#8211;is essential when working with AEM. Let me walk through how these operations function within AEM.<\/p>\n<p>In AEM, we mainly rely on two APIS &#8211; Sling API and JSON interface.<\/p>\n<p>Both models provide different methods for handling resources, and one must understand these differences to complete tasks effectively.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_Sling_API_in_AEM\"><\/span><strong>Using Sling API in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM uses its Sling API as a powerful resource management tool. Its methods allow for retrieving child resources or accessing properties.<\/p>\n<p>Utilise it by calling methods like resource.getChildren() or consulting value maps on specific resources.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-CRUD-Guide.png\" alt=\"AEM Training\" width=\"800\" height=\"2425\" \/><\/p>\n<p>As an example, AEM makes these operations simple and user-friendly for developers. For instance, when retrieving resources or fetching children they provide, and reading properties via value map retrievals.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_JSON_Interface_in_AEM\"><\/span><strong>Using JSON Interface in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM also features the <a href=\"https:\/\/cloudfoundation.com\/blog\/json-interview-questions\/\" target=\"_blank\" rel=\"noopener\">JSON interface<\/a>, which works seamlessly with nodes and sessions.<\/p>\n<p>\u00a0Nodes allow you to manage resources using node.getProperties() and session.save(), giving you greater insight into the structure of your content.<\/p>\n<p>Nodes act like interchangeable resources, allowing for greater analysis into how they relate.<\/p>\n<p>Modifying properties using AEM&#8217;s JSON interface allows you to update values within its value map nodes and commit your changes securely and reliably.<\/p>\n<p>AEM provides robust support to make these modifications reliable.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Adding_and_Modifying_Properties_in_AEM\"><\/span><strong>Adding and Modifying Properties in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Adding properties in AEM is as straightforward as updating its value map. Your resource already contains three properties\u2014first, second, and third.<\/p>\n<p>To add another, update its value map before committing it using session management.<\/p>\n<p>AEM allows users to set modifiable properties, making dynamic updates simple. Whether you&#8217;re adding, editing, or committing changes, AEM has your back!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Deleting_Resources_in_AEM\"><\/span><strong>Deleting Resources in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Deleting resources in AEM is easy. Identify the resource to be deleted before calling its delete method and making your change official.<\/p>\n<p>For instance, if your resource contains grandchildResource, AEM will update the session to reflect this change, and you can remove this resource accordingly.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Resource-Management.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>Our process is seamless and allows you to manage your content efficiently.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Resource_Adaptation\"><\/span><strong>Understanding AEM Resource Adaptation<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Explore something that has caused me difficulty using AEM: adapting modifiable value maps instead of regular ones.<\/p>\n<p>At first, it seemed the issue lay elsewhere, but after further experimentation, I discovered that adapting modifiable value maps was key in solving my difficulties.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Handling_Node_Properties_in_AEM\"><\/span><strong>Handling Node Properties in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>How AEM allows us to retrieve and modify properties efficiently. We can efficiently retrieve properties with modifiable value maps by adopting child resources.<\/p>\n<p>Setting values may seem simple enough, but remember that you can change multiple properties simultaneously for faster operations.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Deleting_Resources_in_AEM-2\"><\/span><strong>Deleting Resources in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Deleting resources in AEM is easy; locate it, call its delete method, and watch as it disappears.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Guide.png\" alt=\"AEM Training\" width=\"800\" height=\"1070\" \/><\/p>\n<p>This method works seamlessly with the Sling API, making resource management more manageable.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_API_Choices_Sling_vs_JCR\"><\/span><strong>AEM API Choices: Sling vs JCR<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Picking between Sling and JCR APIs in AEM can be challenging.<\/p>\n<p>Both services achieve similar goals, yet Sling provides a more intuitive operation than JCR &#8211; this explains why many developers favour adapting resources using Sling models.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#0095f2&#8243; background_color_gradient_end=&#8221;#7dbed8&#8243; background_color_gradient_direction=&#8221;92deg&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;73%|62%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/SS_436-_Converted_-1.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_scale=&#8221;114%|112%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;25px|-4px&#8221; transform_translate_linked=&#8221;off&#8221; width=&#8221;98.1%&#8221; custom_margin=&#8221;|7px|||false|false&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;21px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><span style=\"color: #ffffff;\">AEM Training<\/span><\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Explore Course Content&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Performance_Considerations\"><\/span><strong>AEM Performance Considerations<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Performance matters when <a href=\"https:\/\/cloudfoundation.com\/aem-assets-training\" target=\"_blank\" rel=\"noopener\">working in AEM<\/a>, and both the Sling API and the JCR API provide great flexibility.<\/p>\n<p>However, JCR delivers direct access to nodes, which may prove more suitable for performance-critical tasks.<\/p>\n<p>In any event, it all boils down to striking the right balance between usability and efficiency.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Best_Practices_for_AEM_Development\"><\/span><strong>Best Practices for AEM Development<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One key insight has been learning when to utilise modifiable value maps, session commits, and direct node modifications based on individual resource adaptation requirements.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Development-Insights.png\" alt=\"AEM Training\" width=\"800\" height=\"3064\" \/><\/p>\n<p>Each method serves a distinct function.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Enhancing_Development_with_AEM\"><\/span><strong>Enhancing Development with AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Working with AEM simplifies development thanks to its powerful utility classes and features.<\/p>\n<p><a href=\"https:\/\/cloudfoundation.com\/aem-online-course-training\" target=\"_blank\" rel=\"noopener\">Experience with AEM&#8217;s<\/a> Adapt to framework has shown its invaluable applications.<\/p>\n<p>Similarly, AEM resources and utility functions offer extensive options to manipulate and manage content seamlessly.<\/p>\n<p>Utilizing AEM&#8217;s resource utilities, you can quickly and efficiently create or modify resources, retrieve existing ones, generate any missing ones automatically, if necessary, simplify coding processes while decreasing effort, and improve workflow efficiency.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_AEM_Leverages_Sling_API\"><\/span><strong>How AEM Leverages Sling API<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Behind the scenes, AEM relies heavily on the Sling API, an extension of JCR APIS.<\/p>\n<p>While working within AEM, you indirectly employ JCR APIS through the Sling framework, taking advantage of additional functionalities to increase development productivity.<\/p>\n<p>Sling API offers developers an efficient means of interacting with resources.<\/p>\n<p>However, execution still occurs through JCR APIS, so performance depends on using direct GCR calls in complex operations.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Performance_Considerations_in_AEM\"><\/span><strong>Performance Considerations in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Understanding the interactions between the Sling API and the JCR API is vital when optimising performance within AEM.<\/p>\n<p>While Sling API facilitates development, JCR APIS provide superior resource optimisation performance in resource-intensive tasks.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Performance-Insights.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>Tapping directly into JCR can ensure efficiency and success if your operations involve complex processes.<\/p>\n<p>Sling API can often speed development without compromising functionality, while JCR APIS may offer greater performance advantages in more demanding scenarios.<\/p>\n<p>Developers must assess their needs and select a practical approach to maintain efficiency within AEM projects.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_The_Core_of_Enterprise_CMS\"><\/span><strong>Understanding AEM: The Core of Enterprise CMS<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM lies at the core of enterprise content management systems. With its flexible architecture and efficient capabilities for overseeing digital experiences, AEM provides maximum flexibility while remaining efficient for business use.<\/p>\n<p>Here, we explore what AEM is, how it operates as a CMS, and its significance within enterprises.<\/p>\n<p>One of AEM&#8217;s core strengths is its component-based structure.<\/p>\n<p>When adding pages, there is no need to write extensive code\u2014AEM allows authors to build and modify them on demand.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Setting_Up_AEM_Instances_Author_and_Publisher\"><\/span><strong>Setting Up AEM Instances: Author and Publisher<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Establishing author and publisher instances within AEM is straightforward. When creating an instance, specify an applicable name and port to instantly configure it.<\/p>\n<p>Example: We created two instances\u2014author on port 4502 and publisher on 4503\u2014which play key roles in effectively managing content.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Hosting_Cloud_vs_On-Prem\"><\/span><strong>AEM Hosting: Cloud vs. On-Prem<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One of the more frequently asked questions about AEM hosting involves whether its instance runs on AWS cloud or on-premise servers.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Overview-1.png\" alt=\"AEM Training\" width=\"800\" height=\"1066\" \/><\/p>\n<p>While <a href=\"https:\/\/cloudfoundation.com\/blog\/what-is-amazon-web-services\" target=\"_blank\" rel=\"noopener\">AWS provides<\/a> physical space to house AEM, AEM itself serves as an application server that powers digital experiences.<\/p>\n<p>On-prem hosting allows companies to run AEM instances on local servers within their premises for complete control over infrastructure.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Sites_and_Pages_Building_Without_Code\"><\/span><strong>AEM Sites and Pages: Building Without Code<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM provides its users with pre-built templates and reference websites to assist in creating pages dynamically using templates. No coding necessary\u2014AEM generates pages automatically.<\/p>\n<p>Example: Selecting an AEM template to build a page can be crucial in producing instant pages without writing HTML from scratch.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#ff8c7c&#8221; background_color_gradient_end=&#8221;#e5ba4e&#8221; background_color_gradient_type=&#8221;radial&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;74%|69%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;||-5px||false|false&#8221; custom_padding=&#8221;|||2px|false|false&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/8423118_3895895.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; width=&#8221;85.4%&#8221; custom_margin=&#8221;-31px||-24px||false|false&#8221; custom_padding=&#8221;|22px|0px||false|false&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;19px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;1.2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><strong>AEM Online <\/strong>Training<\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Up Coming Batches&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#E09900&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221; background_layout=&#8221;dark&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Components_The_Building_Blocks\"><\/span><strong>AEM Components: The Building Blocks<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Pages created using AEM are composed of various components. Navigation bars, product grids, and carousels shape the visuals and functionality of <a href=\"https:\/\/cloudfoundation.com\/blog\/webmethods-interview-questions\" target=\"_blank\" rel=\"noopener\">websites created<\/a> using this platform.<\/p>\n<p>AEM provides authors with an efficient means of organising their designs through its layout container component.<\/p>\n<p>This component allows for quickly adding and positioning additional elements to create organised, user-centric pages.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Author_vs_Publisher_Content_Workflow\"><\/span><strong>AEM Author vs. Publisher: Content Workflow<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Authors create and update pages within AEM&#8217;s author instance, but these changes are not visible until published to the live site.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Component-Basics.png\" alt=\"AEM Training\" width=\"800\" height=\"1996\" \/><\/p>\n<p>A new page created within the author instance does not automatically appear on its publisher instance until published, ensuring a controlled workflow.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Components\"><\/span><strong>Understanding AEM Components<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Building components with AEM typically involves three essential steps: dialogues, HTML markup and <a href=\"https:\/\/cloudfoundation.com\/blog\/javafx-training\/\" target=\"_blank\" rel=\"noopener\">Java<\/a> coding, with Sling models used to manage this part.<\/p>\n<p>All three aspects must work seamlessly for successful component development within AEM; let&#8217;s consider each in detail below.<\/p>\n<p>AEM&#8217;s dialogue feature is essential in providing authors with inputs that directly shape website outputs.<\/p>\n<p>For instance, updating text in an author instance reflects your input but may take up to 24 hours to appear on the publisher instance.<\/p>\n<p>To ensure our content reaches end users, it must be disseminated through replication to all publisher instances.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_Content_Replication_Works_in_AEM\"><\/span><strong>How Content Replication Works in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Replication in AEM ensures that updated content from an author instance is accessible across all publisher instances.<\/p>\n<p>Whether using the &#8220;Publish Page&#8221; option or selecting and activating pages directly, this process is effortless.<\/p>\n<p>We aim to synchronise all publisher instances quickly to efficiently deliver fresh, up-to-date content.<\/p>\n<p>As soon as you publish in AEM, its dispatcher becomes indispensable for load balancing user requests across publisher instances.<\/p>\n<p>Replication ensures users always receive the latest content. Although terms like &#8216;publish, activate, or replicate&#8217; can often be used interchangeably when discussing replication, they all serve the same function.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Configuring_Publishers_in_AEM\"><\/span><strong>Configuring Publishers in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Configuring publishers within AEM involves specifying their number and ports for operation; for instance, if your publishers run on port 4503, AEM needs to know this to recognise them correctly.<\/p>\n<p>You can access these settings through the &#8220;Replication&#8221; section under deployment options.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Content-Replication.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>AEM employs replication agents as travel agents, managing content packages from author to publisher as part of this process.<\/p>\n<p>Agent configuration includes information regarding publishers, such as ports and credentials, for an efficient content migration experience.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Exploring_Reverse_Replication_in_AEM\"><\/span><strong>Exploring Reverse Replication in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Reverse replication requires content to flow back from publisher instances to author instances, and AEM can support this feature by configuring agents on both publishers and authors instead.<\/p>\n<p>Reverse replication in AEM is managed through publishers using agents on publishers who package up content from publisher instances and transfer it back to authors for replication purposes.<\/p>\n<p>Although less commonly utilized than standard replication, reverse replication remains an effective feature that provides robust solutions in certain use cases.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_Default_Agents_in_AEM\"><\/span><strong>Using Default Agents in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM default agents play a pivotal role in content replication. These default agents, preconfigured to perform replication tasks like moving content from authors to publishers, can be seen by accessing AEM&#8217;s &#8216;Agents on Author&#8217; section.<\/p>\n<p>Configuring credentials and details related to content transfer ensures a safe, efficient experience. If necessary, you may choose to adapt these settings according to your project&#8217;s needs.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Replication\"><\/span><strong>Understanding AEM Replication<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Replicated AEM content delivery relies on its replication agent to transfer information from an author instance to multiple publishers correctly and reliably.<\/p>\n<p>Replication agents are indispensable in ensuring content is migrated successfully across AEM instances and publishers.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Replication.png\" alt=\"AEM Training\" width=\"800\" height=\"945\" \/><\/p>\n<p>Every AEM user engaged in replication requires sufficient permissions to create, modify, and publish packages to AEM publishers.<\/p>\n<p>Without these rights, replication fails, and content remains stuck within its author instance.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Setting_Up_AEM_Publishers_and_Agents\"><\/span><strong>Setting Up AEM Publishers and Agents<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Configuring multiple AEM publishers involves configuring replication agents for each.<\/p>\n<p>Therefore, in an environment with three AEM publishers present, three replication agents need to be configured &#8211; one per publisher.<\/p>\n<p>AEM does not support using a single replication agent to migrate content between publishers.<\/p>\n<p>Instead, it uses separate agents who handle this migration so that each publisher receives the appropriate content and updates.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Creating_AEM_Agents_Through_CRXD\"><\/span><strong>Creating AEM Agents Through CRXD<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM provides tools for agent creation, including the Configure Replicated Exchange Datasets (CRXD). These tools enable users to locate replication settings and set up new agents for various publishers.<\/p>\n<p>Users can efficiently set up new publishers by duplicating and editing an AEM replication agent&#8217;s default configuration settings before duplicating that agent again with modified settings for new publishers.<\/p>\n<p>Adjusting the replication target helps ensure that AEM content goes to its designated instances.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Managing_AEM_Deployment\"><\/span><strong>Managing AEM Deployment<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Implementation of AEM code requires special care; unlike content deployment, AEM code needs to be individually deployed on each instance, whether that means one author or multiple publishers.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Configuration-Guide.png\" alt=\"AEM Training\" width=\"800\" height=\"2432\" \/><\/p>\n<p>AEM teams typically deploy AEM using automated tools like Jenkins. Manual deployment should ensure AEM runs consistently across all instances if such automation is unavailable.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Handling_Dispatcher_Configuration_in_AEM\"><\/span><strong>Handling Dispatcher Configuration in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Publishers typically use dispatcher caching in AEM. AEM websites receive thousands of page requests daily, making caching essential to performance optimisation.<\/p>\n<p>While some organisations explore dispatcher configurations for AEM author instances, this remains relatively rare.<\/p>\n<p>AEM authors typically serve a limited set of users, eliminating the need for dispatcher-level caching.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#494fff&#8221; background_color_gradient_end=&#8221;#9ea6ff&#8221; background_color_gradient_type=&#8221;radial&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;74%|71%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/Untitled-11.png&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_scale=&#8221;103%|103%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;11px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_padding=&#8221;|88px||||&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;19px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;1.2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><span style=\"color: #ffffff;\"><strong>AEM Course Price<\/strong><\/span><\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Offer Price&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_team_member name=&#8221;Sai Susmitha&#8221; position=&#8221;Author&#8221; image_url=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/03\/Sai-Susmitha.png&#8221; _builder_version=&#8221;4.9.7&#8243; header_level=&#8221;h5&#8243; header_font=&#8221;Titillium Web|700|||||||&#8221; body_font=&#8221;Titillium Web||||||||&#8221; body_font_size=&#8221;16&#8243;]<\/p>\n<p id=\"posted-message-container\" class=\"zcmsgcnt textL\" dir=\"auto\">The Journey of Personal Development is a Continuous path of learning and growth<\/p>\n<p>[\/et_pb_team_member][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Understanding CRUD Operations in AEM Mastery [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":97563,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"2880","footnotes":""},"categories":[209],"tags":[],"class_list":{"0":"post-97562","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-adobe"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AEM Development PDF<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AEM Development PDF\" \/>\n<meta property=\"og:description\" content=\"[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Understanding CRUD Operations in AEM Mastery [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudFoundation | Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-28T05:51:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-03T07:40:56+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI-4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"333\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"NAGENDRAG\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"NAGENDRAG\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AEM Development PDF","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/","og_locale":"en_US","og_type":"article","og_title":"AEM Development PDF","og_description":"[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Understanding CRUD Operations in AEM Mastery [&hellip;]","og_url":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/","og_site_name":"CloudFoundation | Blog","article_published_time":"2025-04-28T05:51:27+00:00","article_modified_time":"2025-05-03T07:40:56+00:00","og_image":[{"width":500,"height":333,"url":"http:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI-4.jpg","type":"image\/jpeg"}],"author":"NAGENDRAG","twitter_card":"summary_large_image","twitter_misc":{"Written by":"NAGENDRAG","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/","url":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/","name":"AEM Development PDF","isPartOf":{"@id":"https:\/\/cloudfoundation.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#primaryimage"},"image":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI-4.jpg","datePublished":"2025-04-28T05:51:27+00:00","dateModified":"2025-05-03T07:40:56+00:00","author":{"@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/df6c7eba98f1bb15f2a100a9958266e4"},"breadcrumb":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#primaryimage","url":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI-4.jpg","contentUrl":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI-4.jpg","width":500,"height":333},{"@type":"BreadcrumbList","@id":"https:\/\/cloudfoundation.com\/blog\/aem-development-pdf\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudfoundation.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AEM Development PDF"}]},{"@type":"WebSite","@id":"https:\/\/cloudfoundation.com\/blog\/#website","url":"https:\/\/cloudfoundation.com\/blog\/","name":"CloudFoundation | Blog","description":"A New way of Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudfoundation.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/df6c7eba98f1bb15f2a100a9958266e4","name":"NAGENDRAG","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/09e08ba1102807a876f2c00245d6b955f0a9f027b40c181e9cee0cd2d927f84a?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09e08ba1102807a876f2c00245d6b955f0a9f027b40c181e9cee0cd2d927f84a?s=96&d=wavatar&r=g","caption":"NAGENDRAG"},"url":"https:\/\/cloudfoundation.com\/blog\/author\/nagendrag\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/comments?post=97562"}],"version-history":[{"count":12,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97562\/revisions"}],"predecessor-version":[{"id":98926,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97562\/revisions\/98926"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/media\/97563"}],"wp:attachment":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/media?parent=97562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/categories?post=97562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/tags?post=97562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}