Replication Orchestrator logo

Replication Orchestrator

Organization
adobe
replication-orchestrator

Orchestrates end-to-end replication workflows spanning multiple concerns: new environment setup, production incident response, and performance optimization for AEM 6.5 LTS.

Overview

Publisheradobe
Repositoryskills
Skill namereplication-orchestrator
Stars
298
Forks
92
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by adobe on GitHub. Read the source before you install it.

Installation

Install the Replication Orchestrator AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/adobe/skills/tree/main/plugins/aem/6.5-lts/skills/aem-replication/replication-orchestrator
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/adobe/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/plugins/aem/6.5-lts/skills/aem-replication/replication-orchestrator .claude/skills/replication-orchestrator
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Replication Orchestrator in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Replication Orchestrator on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Replication Orchestrator is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Replication Orchestrator

Coordinates complex replication workflows that span multiple sub-skills (configure, replicate, troubleshoot).

When to Use This Skill

Use the orchestrator for multi-step scenarios requiring coordination across sub-skills:

  • New Environment Setup: Configure agents → Test replication → Troubleshoot issues
  • Production Incidents: Diagnose problem → Isolate root cause → Fix and verify
  • Performance Optimization: Monitor metrics → Tune configuration → Validate improvements
  • Migration Preparation: Audit current setup → Document dependencies → Plan cutover

For single-concern tasks, use the specific sub-skill directly instead of the orchestrator.

Workflow 1: New Environment Setup

End-to-end workflow for setting up replication in a new AEM 6.5 LTS environment.

Prerequisites

  • Author instance running and accessible
  • Publish instance(s) running and accessible
  • Dispatcher installed and configured
  • Service user accounts created
  • Network connectivity verified

Steps

1. Configure Default Replication Agent

Delegate to: configure-replication-agent

Actions:

  1. Create default replication agent on Author
  2. Configure transport URI: http://publish-host:4503/bin/receive?sling:authRequestLogin=1
  3. Set service user credentials
  4. Enable the agent

Verification Checkpoint:

bash
# Test agent connectivity
curl -u $AEM_USER:$AEM_PASSWORD \
  http://localhost:4502/etc/replication/agents.author/<agent-name>.test.html

Expected: "Replication test succeeded"

2. Configure Dispatcher Flush Agent

Delegate to: configure-replication-agent

Actions:

  1. Create flush agent on each Publish instance
  2. Configure transport URI: http://dispatcher-host:80/dispatcher/invalidate.cache
  3. Set serialization type to "Dispatcher Flush"
  4. Enable the agent

Verification Checkpoint:

bash
# 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"

3. Test Content Replication

Delegate to: replicate-content

Actions:

  1. Create test page: /content/test/replication-check
  2. Activate via Quick Publish
  3. Verify on Publish instance
  4. Verify Dispatcher cache invalidation

Verification Checkpoint:

bash
# 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

4. Configure Monitoring

Actions:

  1. Enable JMX monitoring for queue metrics
  2. Set up log monitoring for replication errors
  3. Configure alerts for queue depth > 20 items
  4. Document runbook for common issues

JMX Bean:

com.day.cq.replication:type=Agent,id=<agent-name>
  - QueueNumEntries
  - QueueBlocked
  - QueueProcessingSince
5. Handle Any Issues

If problems occur, delegate to: troubleshoot-replication

Common setup issues:

  • Connection refused → Verify target instance running and network connectivity
  • 401 Unauthorized → Check service user credentials
  • Queue blocked → Review error.log for root cause
  • Content not appearing → Check Dispatcher cache invalidation

Success Criteria

  • Default replication agent enabled and passing test
  • Dispatcher flush agent enabled and passing test
  • Test page successfully replicated to Publish
  • Test page accessible via Dispatcher with correct cache headers
  • JMX monitoring configured and showing metrics
  • Log monitoring configured for replication errors
  • Team runbook updated with agent details

Workflow 2: Production Incident Response

End-to-end workflow for diagnosing and resolving production replication issues.

Incident Triage

1. Gather Symptoms

Questions to answer:

  • Is content replicating at all? (None vs. Some)
  • Which agents are affected? (All vs. Specific)
  • When did the issue start? (Timestamp)
  • What changed recently? (Deployments, config, network)

Data to collect:

bash
# 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
2. Diagnose Root Cause

Delegate to: troubleshoot-replication

Follow diagnostic decision tree:

  1. Is queue blocked? → Network/connectivity issue
  2. Are there 401/403 errors? → Authentication issue
  3. Are there SSL errors? → Certificate issue
  4. Is queue depth growing? → Target instance overloaded
  5. Is content missing on Dispatcher? → Cache invalidation issue

Common root causes:

  • Network partition between Author and Publish
  • Service user credentials expired or revoked
  • Target instance CPU/memory exhausted
  • Dispatcher not accepting flush requests
  • Firewall rule change blocking replication traffic
3. Implement Fix

Based on diagnosis:

Network Issue:

  • Verify network connectivity: ping publish-host
  • Check firewall rules
  • Test replication port: telnet publish-host 4503

Authentication Issue:

  • Verify service user exists and is active
  • Check user permissions: /useradmin
  • Regenerate credentials if expired

Target Capacity Issue:

  • Monitor Publish instance CPU/memory
  • Scale horizontally (add publish instances)
  • Optimize Publish instance configuration

Dispatcher Issue:

  • Verify Dispatcher flush agent configuration
  • Check Dispatcher allowedClients setting
  • Restart Dispatcher if necessary
4. Verify Resolution

Validation steps:

  1. Clear blocked queue items (if applicable)
  2. Retry failed replications
  3. Activate test content
  4. Monitor queue depth for 15 minutes
  5. Verify no new errors in logs

Verification commands:

bash
# 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'
5. Post-Incident Review

Document:

  • Root cause analysis
  • Timeline of incident
  • Resolution steps taken
  • Preventive measures for future

Update runbooks with:

  • New diagnostic patterns observed
  • Effective resolution procedures
  • Monitoring improvements needed

Success Criteria

  • Root cause identified and documented
  • Fix implemented and verified
  • Queue processing normally (depth decreasing)
  • No errors in replication.log for 15 minutes
  • Test content replicates successfully
  • Monitoring confirms normal operation
  • Post-incident review completed
  • Runbook updated

Workflow 3: Performance Optimization

End-to-end workflow for improving replication throughput and efficiency.

Performance Baseline

1. Measure Current Performance

Metrics to collect:

  • Average replication rate (pages/minute)
  • Queue depth over time
  • Replication latency (activation to publish)
  • Target instance CPU/memory utilization
  • Network latency (Author to Publish)

Measurement period: 7 days of production traffic

Tools:

  • JMX metrics for queue depth
  • replication.log for timing analysis
  • System monitoring for resource utilization
2. Identify Bottlenecks

Common bottlenecks:

High Queue Depth:

  • Cause: Target instance slow to process
  • Indicator: Queue depth consistently > 20 items
  • Delegate to: Capacity planning

Slow Network:

  • Cause: High latency or low bandwidth
  • Indicator: Large assets take > 5 minutes
  • Delegate to: Network team for optimization

Serialization Overhead:

  • Cause: Large page structures or many components
  • Indicator: CPU spikes during activation
  • Delegate to: Content architecture review

Synchronous Replication:

  • Cause: Using synchronous options unnecessarily
  • Indicator: UI blocks during activation
  • Solution: Switch to asynchronous
3. Implement Optimizations

Based on bottleneck analysis:

Optimization 1: Use Asynchronous Replication

Delegate to: replication-api

java
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

java
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:

  • Add additional Publish instances
  • Create agents for each instance
  • Load balance across instances

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)
4. Measure Improvements

Compare metrics:

  • Replication rate before/after
  • Queue depth before/after
  • User-reported activation time

Expected improvements:

  • 2-5x throughput increase with async
  • 50% reduction in queue depth with batching
  • Linear scaling with additional instances

If improvements insufficient:

  • Review content architecture for optimization opportunities
  • Consider workflow-based approval to reduce replication volume
  • Evaluate network infrastructure upgrades

Success Criteria

  • Baseline performance metrics documented
  • Bottlenecks identified with data
  • Optimizations implemented and tested
  • Performance improvements measured and validated
  • Monitoring updated to track new metrics
  • Documentation updated with optimization patterns

Workflow 4: Migration Preparation (AEM 6.5 LTS → Cloud Service)

Prepare for migration to AEM as a Cloud Service Sling Distribution API.

Migration Assessment

1. Audit Current Replication Setup

Inventory:

  • Number of replication agents
  • Custom replication code locations
  • Agent configuration dependencies
  • Integration points with external systems

Questions:

  • Which code uses Replication API directly?
  • Are there agent ID filters in code? (tight coupling)
  • Are there custom replication listeners?
  • Are there scheduled/automated replication jobs?
2. Identify Migration Effort

High-effort areas:

  • Custom ReplicationListener implementations → Event listener refactor
  • Agent ID filtering → Configuration-driven approach needed
  • Direct agent configuration manipulation → Remove or abstract
  • Custom serialization types → Standard Cloud Service patterns

Low-effort areas:

  • Simple Replicator.replicate() calls → Map to Distribution API
  • Standard workflows → Cloud Service equivalents exist
  • Service user patterns → Continue in Cloud Service
3. Plan Migration Strategy

Phases:

Phase 1: Code Audit (delegate to development team)

  • Grep for com.day.cq.replication package imports
  • Document all usage locations
  • Categorize by migration complexity

Phase 2: Abstraction Layer (reduce coupling)

  • Create interface wrapping replication operations
  • Implement with current Replication API
  • Update code to use interface instead of direct API

Phase 3: Cloud Service Implementation

  • Implement interface with Sling Distribution API
  • Deploy to Cloud Service dev environment
  • Test functional equivalence

Phase 4: Cutover

  • Deploy to Cloud Service staging
  • Run parallel for validation period
  • Cut over production traffic
4. Reference Migration Patterns

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 agents
  • ReplicationActionType.ACTIVATE → Content publish workflows in Cloud Service
  • Agent configuration → Cloud-native distribution managed by Adobe

Important: 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.

Success Criteria

  • Complete inventory of replication usage
  • Migration effort estimated
  • Abstraction layer designed
  • Proof-of-concept validated on Cloud Service
  • Migration plan documented and approved
  • Team trained on Cloud Service patterns

Cross-Skill Coordination

The orchestrator coordinates across specialist skills:

Related Skills

  • AEM Workflow: Integrate replication with approval workflows
  • Dispatcher: Configure cache invalidation and flush agents
  • AEM Cloud Service Best Practices: Migration patterns for Cloud Service

Foundation References

Frequently asked questions

What does the Replication Orchestrator AI skill do?

Orchestrates end-to-end replication workflows spanning multiple concerns: new environment setup, production incident response, and performance optimization for AEM 6.5 LTS.

Why use Replication Orchestrator on TypingMind?

Because you install it once and use it with any model. Replication Orchestrator is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Replication Orchestrator in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/adobe/skills/tree/main/plugins/aem/6.5-lts/skills/aem-replication/replication-orchestrator. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Replication Orchestrator?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Replication Orchestrator?

As many as you like. As long as a model supports skills, you can use Replication Orchestrator with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Replication Orchestrator AI skill free?

Yes. It is published on GitHub by adobe under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇