All AEM 6.5 LTS skills: Workflow model design, development, triggering, launchers, debugging, and triaging; Dispatcher config authoring, advisory, incident response, performance tuning, and security hardening; Replication agent configuration, content activation, API usage, and troubleshooting for AEM 6.5 LTS and AMS environments; Jackrabbit Oak query/index tuning (property, Lucene index definitions); and extracting/inventorying JCR queries (XPath, SQL2, QueryBuilder) across a codebase.
79%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
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.htmlExpected: "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.htmlExpected: "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
- QueueProcessingSinceIf 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 replicationDelegate 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: 60000msFor 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:
.tessl-plugin
skills
aem-replication
aem-workflow
dispatcher
ensure-agents-md
references
tuning-oak-query-indexes