Before getting deep into replication concept in AEM, I thought like “Replication is just activating/publishing a page from author to publish environment”. While going deep through this concept, came to know about various faces and features of replication that excited me a lot. The overall objective of this article is to share comprehensive knowledge on replication process in AEM. For some topic, as it need in depth expertise, I’m sharing the blog/article that I have referred so that you can get more insights on those topics.
In this article, we are going to explore the below things related to replication process in AEM:
- A What is Definition for Replication in AEM
- Types of Replication Agent
- Different ways to trigger Replication
- Replication Status
- What is De-activation or unpublishing of a page
- How to configure a default replication agent
- How to ensure security during replication
- Monitoring of Replication Agents
- Troubleshooting Replication Issues
- ACS AEM Common Tools available for Replication
- Different Replication Scenarios
Replication – Definition:
Once you done with authoring of your content in the author environment, the goal is to make it available on your publish environment. The process of moving a page from Author to Publish is known as Replication/ Activation/ Publishing of a Page.
When the activation request made to publish any content, the configured replication agent package the content & put it on replication queue. The content is lifted from the queue and transported to the publish environment using the configured protocol – HTTP. A listener Servlet at publish instance, receives the content package & update it on publish instance. The default listener servlet in publish instance is http://localhost:4503/bin/recieve.
Types of Replication Agent:
1) Default Replication Agent – To activate/publish content from Author to Publish Instance
2) Dispatcher Flush Agent – To explicitly flush the content from dispatcher cache
3) Reverse Replication Agent – To get user generated data from Publish to Author
4) Static Replication Agent – To replicate a static representation of a node into the filesystem
5) Test and Target Replication Agent – To replicate your content to Adobe Test and Target, which will inherit the replication settings from the cloud configuration attached to a campaign
6) YouTube Publish – To replicate your content to YouTube whose authentication settings are managed under cloud services
7) Dynamic Media Hybrid Image Replication – To replicate Dynamic Media [Scene7] assets such as images, video metadata etc.
8) Offloading Outbox Replication Agent – To offload the requests of Outbox Replication Agent
Apart from this, you can create your custom replication agent. For example, the following post of Nateyolles describes on how to create a custom replication agent that flush the cache content from Akamai CDN [great post with lot of info!]
Ways to trigger replication:
1) From the Page Editor – Publishing from the page editor is a shallow publish, i.e. only the selected page/pages is/are published and not any child pages. This is useful when you want to replicate specific pages after any content change.
2) From the Site Admin Console
3) By Tree Activation [Activating a complete section (tree) of your website] – If you are replicating your website content for the first time, then you can make use of this feature.
4) Using the Replication option in Package Manager – This wold be useful when you wants to replicate the specific set of content.
5) Using Workflows – You can approve and automate page replication by using workflows. After getting approvals for the edit, the corresponding Page/ Asset will get activated to publish environment [Example: Page Activation Workflow]
6) Scheduled Activation/Deactivation (On/Off Time) – You can schedule times for a page to be published/unpublished using the On Time and Off Time that can be defined in the Page Properties.
7) Using CURL Command – By using curl commands you can activate content from author to publish
curl -u admin:admin -X POST -F path=”/content/path/to/page” -F cmd=”activate” http://localhost:4502/bin/replicate.json
curl -u admin:admin -X POST -F path=”/content/path/to/page” -F cmd=”deactivate” http://localhost:4502/bin/replicate.json
curl -u admin:admin -F cmd=activate -F ignoredeactivated=true -F onlymodified=true
-F path=/content/geometrixx http://localhost:4502/etc/replication/treeactivation.html
Replication Status Indicator [Classic UI]:
When you want to remove a page from the publish environment, you can deactivate a Page in AEM and this is referred as unpublishing. While unpublishing, the page is de-activated only in Publish and it remains available on the author environment for further changes until you delete it.
Configuring a Default Replication Agent:
We have seen the different types of replication agents available in AEM and various ways to trigger it. Let see how to configure a default replication agent in author instance, so that you can replicate your content from author to publish.
Go to Tools -> Replication -> Agents on Author
Or Hit, http://localhost:4502/etc/replication/agents.author.html
It will show you the list of replication agents available.
How to ensure Security during Replication:
While replicating a Page from author to publish environment, AEM uses the HTTP protocol. In addition to that AEM uses a proprietary binary format for replication called Durbo. Durbo includes the necessary check summing to ensure that replicated content is not corrupted during transport. If you wants to add an extra layer of security, you can go for mutual SSL – MSSL for authenticating the replication request. Using MSSL, the replication agent in author and the HTTP service on the publish instance use certificates to authenticate each other.
For further info kindly refer,
Troubleshooting Replication Issues:
ACS AEM Common Tools available for Replication:
Package Replication Status Updater – As I mentioned earlier, you can do Package Replication from the Package Manager Console. This package replication status updater config will help us to check the replication status of the contents replicated through package. It is an Event handler that listens for JCR Package replications and updates the Replication Status of its content accordingly.
Automatic Package Replication – This will explain how to auto replicate the packages using Schedulers on particular triggers or using workflow processes.
Different Replication Scenarios:
Last but not the least, added different replication scenarios with a Pictorial representation to get a better understanding.
Hope this post gave you an in-depth view into replication process in AEM. Looking forward for any correction or feedback. Thanks!