plugins/aem/6.5-lts/skills/aem-replication/replication-orchestrator/SKILL.md
Orchestrates end-to-end replication workflows spanning multiple concerns: new environment setup, production incident response, and performance optimization for AEM 6.5 LTS.
npx skillsauth add adobe/skills replication-orchestratorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Coordinates complex replication workflows that span multiple sub-skills (configure, replicate, troubleshoot).
Use the orchestrator for multi-step scenarios requiring coordination across sub-skills:
For single-concern tasks, use the specific sub-skill directly instead of the orchestrator.
End-to-end workflow for setting up replication in a new AEM 6.5 LTS environment.
Delegate to: configure-replication-agent
Actions:
http://publish-host:4503/bin/receive?sling:authRequestLogin=1Verification Checkpoint:
# Test agent connectivity
curl -u $AEM_USER:$AEM_PASSWORD \
http://localhost:4502/etc/replication/agents.author/<agent-name>.test.html
Expected: "Replication test succeeded"
Delegate to: configure-replication-agent
Actions:
http://dispatcher-host:80/dispatcher/invalidate.cacheVerification Checkpoint:
# Test flush agent connectivity
curl -u $AEM_USER:$AEM_PASSWORD \
http://publish-host:4503/etc/replication/agents.publish/flush.test.html
Expected: "Replication (Dispatcher Flush) test succeeded"
Delegate to: replicate-content
Actions:
/content/test/replication-checkVerification Checkpoint:
# Check page on Publish
curl http://publish-host:4503/content/test/replication-check.html
# Check page on Dispatcher
curl http://dispatcher-host:80/content/test/replication-check.html
# Verify cache was invalidated (should see fresh content)
Expected: Page content identical on all instances
Actions:
JMX Bean:
com.day.cq.replication:type=Agent,id=<agent-name>
- QueueNumEntries
- QueueBlocked
- QueueProcessingSince
If problems occur, delegate to: troubleshoot-replication
Common setup issues:
End-to-end workflow for diagnosing and resolving production replication issues.
Questions to answer:
Data to collect:
# Check agent status
curl -u $AEM_USER:$AEM_PASSWORD \
http://localhost:4502/etc/replication/agents.author/<agent-name>.html
# Check queue depth
# Navigate to JMX Console: /system/console/jmx
# com.day.cq.replication:type=Agent,id=<agent-name>
# QueueNumEntries value
# Check recent errors
tail -n 100 <aem-install>/crx-quickstart/logs/error.log | grep -i replication
Delegate to: troubleshoot-replication
Follow diagnostic decision tree:
Common root causes:
Based on diagnosis:
Network Issue:
ping publish-hosttelnet publish-host 4503Authentication Issue:
/useradminTarget Capacity Issue:
Dispatcher Issue:
Validation steps:
Verification commands:
# Retry queue via JMX
# com.day.cq.replication:type=Agent,id=<agent-name>
# Operation: retryFirst()
# Monitor queue depth
watch -n 5 'curl -s -u $AEM_USER:$AEM_PASSWORD \
http://localhost:4502/system/console/jmx/com.day.cq.replication%3Atype%3DAgent%2Cid%3D<agent-name> \
| grep QueueNumEntries'
Document:
Update runbooks with:
End-to-end workflow for improving replication throughput and efficiency.
Metrics to collect:
Measurement period: 7 days of production traffic
Tools:
Common bottlenecks:
High Queue Depth:
Slow Network:
Serialization Overhead:
Synchronous Replication:
Based on bottleneck analysis:
Optimization 1: Use Asynchronous Replication
Delegate to: replication-api
ReplicationOptions opts = new ReplicationOptions();
opts.setSynchronous(false); // Don't block
replicator.replicate(session, type, paths, opts);
When to use: Bulk operations, background jobs, non-critical content
Optimization 2: Batch Replication
Delegate to: replication-api
String[] paths = contentPaths.toArray(new String[0]);
replicator.replicate(session, type, paths, opts);
Batch size: 100-500 paths (balance throughput vs. memory)
Optimization 3: Increase Target Capacity
Actions:
Expected improvement: Linear scaling with instance count
Optimization 4: Tune Timeouts
For large DAM assets:
Connection Timeout: 30000ms
Socket Timeout: 60000ms
For standard pages:
Connection Timeout: 10000ms (default)
Socket Timeout: 10000ms (default)
Compare metrics:
Expected improvements:
If improvements insufficient:
Prepare for migration to AEM as a Cloud Service Sling Distribution API.
Inventory:
Questions:
High-effort areas:
ReplicationListener implementations → Event listener refactorLow-effort areas:
Replicator.replicate() calls → Map to Distribution APIPhases:
Phase 1: Code Audit (delegate to development team)
com.day.cq.replication package importsPhase 2: Abstraction Layer (reduce coupling)
Phase 3: Cloud Service Implementation
Phase 4: Cutover
Official Adobe Cloud Service Documentation:
Key API migration patterns:
Replicator.replicate() → Sling Distribution API (no direct replacement, use content distribution patterns)ReplicationOptions → Configuration via OSGi for distribution agentsReplicationActionType.ACTIVATE → Content publish workflows in Cloud ServiceImportant: AEM as a Cloud Service uses a fundamentally different architecture. The Replication API does not exist in Cloud Service. Instead, content distribution is handled automatically by the platform. Custom replication code must be refactored to use Cloud Service's content publishing workflows.
The orchestrator coordinates across specialist skills:
development
Start AEM Workflows on AEM as a Cloud Service using all available triggering mechanisms. Use when starting workflows manually via the Timeline UI, programmatically via WorkflowSession.startWorkflow(), via the HTTP Workflow API, through Manage Publication, or passing initial metadata and payload to a workflow instance.
development
Single entry point for all AEM as a Cloud Service Workflow skills. Covers workflow model design, custom process step and participant chooser development, launcher configuration, workflow triggering, and production support including debugging stuck/failed workflows, triaging incidents with Cloud Manager logs, thread pool analysis, and Sling Job diagnostics for the Granite Workflow Engine.
development
[BETA] Implement custom AEM Workflow Java components on AEM as a Cloud Service. This skill is in beta. Verify all outputs before applying them to production projects. Use when writing WorkflowProcess steps, ParticipantStepChooser implementations, registering services via OSGi DS R6 annotations, reading step arguments from MetaDataMap, accessing JCR payload via WorkflowSession adapter, reading and writing workflow metadata and variables, and handling errors with WorkflowException for retry behavior.
development
Start AEM Workflows on AEM 6.5 LTS using all available triggering mechanisms. Use when starting workflows manually via the Timeline UI, programmatically via WorkflowSession.startWorkflow(), via the HTTP Workflow API, through Manage Publication, through replication triggers, or passing initial metadata and payload to a workflow instance.