SlideShare a Scribd company logo
1 of 25
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
AEM Replication
deep dive
Matthias Wermund
Acquity Group
part of Accenture Interactive
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Replication overview
• AEM replication is used for (un)publishing
of AEM content
• Most interaction between AEM Author and
AEM Publish is part of replication
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Key replication components
• Agent
– One per receiving end
• Queue
– Tracks replication requests
– One per agent
• ContentBuilder
– Transforms replicated content to payload
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Types of replication
• Activate / Deactivate
– Durbo
– Flush
– Binary-less
– Static
• Reverse replication
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Dispatcher cache flush
• HTTP request to web server module
• Effect dependent on dispatcher
configuration
– Deletion of activated content
– Invalidation of related content (statfileslevel)
• On Author vs. On Publish
– Race condition of replication and invalidation
– On Publish safer, but not always possible
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Ways to trigger replication
• Page authoring
• Tree activation
• Workflow
• Custom code (API)
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Scenario: Publication preview
• Before going live to end users, preview of
change in internal AEM Publish is required
• Solution approach:
– Integration in publishing workflow
– Activation to only selected AEM Publish
– Review & approve before standard activation
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Publishing workflow
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Custom workflow process step
11
22
33
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Scenario: Global replication notification
• All replication invocations need to trigger
an external search index update
• Solution approach:
– Implement OSGi listener for replication events
– Get replication metadata from event
– Trigger indexing based on replication type
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Replication event listener
11
22
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Scenario: Guaranteed replication
• Before Author users are asked to review,
the activation to Preview Publish must
have been successfully completed
• Solution approach:
– Use synchronous replication
– Verify success via replication listener
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Advanced publishing workflow
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Synchronous replication with listener
11
22
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Scenario: Data filtering
• For privacy, author user information must
get removed from AEM Publish content
• Solution approach:
– Create custom content filter implementation
– Filter out undesired properties
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Custom ReplicationContentFilter
11
22
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
ReplicationContentFilterFactory
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Scenario: Custom replication payload
• When publishing, content must get
exported to a 3rd
party system in JSON
• Solution approach:
– Create a custom ContentBuilder
– Invoke standard JSON renderer for page
– Send HTTP POST using replication agent
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
ContentBuilder implementation (1/2)
11
22
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
ContentBuilder implementation (2/2)
33
44
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
JSON replication agent
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Scenario: Content partitioning
• Different sites must get replicated only to
dedicated AEM Publish instances
• Solution approach:
– Create system user account per site
– Configure replication agent with user account
– Configure ACL to READ for only one site
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Configure agent with user account
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Setup ACL for single site
CIRCUIT – An Adobe Developer Event
Presented by CITYTECH, Inc.
Thanks
• Questions?
matthias.c.wermund@accenture.com
github.com/mwmd

More Related Content

What's hot

Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with TerraformTim Berry
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with AnsibleIvan Serdyuk
 
Heap Dump Analysis - AEM: Real World Issues
Heap Dump Analysis - AEM: Real World IssuesHeap Dump Analysis - AEM: Real World Issues
Heap Dump Analysis - AEM: Real World IssuesKanika Gera
 
Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonYurii Vasylenko
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveLINE Corporation
 
AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101Adobe
 
CRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationCRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationTomasz Rękawek
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansibleKhizer Naeem
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansiblesriram_rajan
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with AnsibleRayed Alrashed
 
Ansible roles done right
Ansible roles done rightAnsible roles done right
Ansible roles done rightDan Vaida
 
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Simplilearn
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...NGINX, Inc.
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 

What's hot (20)

AEM - Client Libraries
AEM - Client LibrariesAEM - Client Libraries
AEM - Client Libraries
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
 
Heap Dump Analysis - AEM: Real World Issues
Heap Dump Analysis - AEM: Real World IssuesHeap Dump Analysis - AEM: Real World Issues
Heap Dump Analysis - AEM: Real World Issues
 
Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of Python
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Ingress overview
Ingress overviewIngress overview
Ingress overview
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 
AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101
 
CRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationCRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migration
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansible
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
Ansible roles done right
Ansible roles done rightAnsible roles done right
Ansible roles done right
 
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 

Viewers also liked

Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMBob Paulin
 
Microservices Architecture for AEM
Microservices Architecture for AEMMicroservices Architecture for AEM
Microservices Architecture for AEMMaciej Majchrzak
 
น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38
น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38
น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38IAMAMMSHOOROS
 
Gül ü Bülbül Mesnevisi
Gül ü Bülbül Mesnevisi Gül ü Bülbül Mesnevisi
Gül ü Bülbül Mesnevisi Oncü Yıldız
 
A love of pumpkins spuds and beans 02 for slideshare
A love of pumpkins spuds and beans 02 for slideshareA love of pumpkins spuds and beans 02 for slideshare
A love of pumpkins spuds and beans 02 for slideshareIpswichSuffolkM
 
Comte de lautréamont maldoror'un şarkıları
Comte de lautréamont   maldoror'un şarkılarıComte de lautréamont   maldoror'un şarkıları
Comte de lautréamont maldoror'un şarkılarıOncü Yıldız
 
Anarsi Felsefesi Ve İdeali
Anarsi Felsefesi Ve İdealiAnarsi Felsefesi Ve İdeali
Anarsi Felsefesi Ve İdealiOncü Yıldız
 
Green lantern
Green lanternGreen lantern
Green lantern115398
 
11businessletternominchimeg 090924125447-phpapp02 2
11businessletternominchimeg 090924125447-phpapp02 211businessletternominchimeg 090924125447-phpapp02 2
11businessletternominchimeg 090924125447-phpapp02 2Manzar Naqvi
 
Capacitacion VTEX workshop artesanos del ecommerce: User Experience y SEO
Capacitacion VTEX workshop artesanos del ecommerce: User Experience y SEOCapacitacion VTEX workshop artesanos del ecommerce: User Experience y SEO
Capacitacion VTEX workshop artesanos del ecommerce: User Experience y SEOVTEX Latam
 
Lab11 7 вариант (про великого человека) 2 версия
Lab11 7 вариант (про великого человека) 2 версияLab11 7 вариант (про великого человека) 2 версия
Lab11 7 вариант (про великого человека) 2 версияIarvailor
 
Rotary D9520 Membership Seminar Loxton 2014
Rotary D9520 Membership Seminar Loxton 2014Rotary D9520 Membership Seminar Loxton 2014
Rotary D9520 Membership Seminar Loxton 2014Mark Huddleston
 
Comparative and Superlative
Comparative and SuperlativeComparative and Superlative
Comparative and Superlativecrafian
 
Sharing your club message through social media (Steve Hayter)
Sharing your club message through social media (Steve Hayter)Sharing your club message through social media (Steve Hayter)
Sharing your club message through social media (Steve Hayter)Mark Huddleston
 
Sharing your club message through social media steve hayter
Sharing your club message through social media steve hayterSharing your club message through social media steve hayter
Sharing your club message through social media steve hayterMark Huddleston
 

Viewers also liked (20)

Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
 
Microservices Architecture for AEM
Microservices Architecture for AEMMicroservices Architecture for AEM
Microservices Architecture for AEM
 
MATOA CORNER PRODUCTION
MATOA CORNER PRODUCTIONMATOA CORNER PRODUCTION
MATOA CORNER PRODUCTION
 
น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38
น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38
น.ส อทิติยา สระทองแยง ม.4/10 เลขที่ 38
 
Gül ü Bülbül Mesnevisi
Gül ü Bülbül Mesnevisi Gül ü Bülbül Mesnevisi
Gül ü Bülbül Mesnevisi
 
A love of pumpkins spuds and beans 02 for slideshare
A love of pumpkins spuds and beans 02 for slideshareA love of pumpkins spuds and beans 02 for slideshare
A love of pumpkins spuds and beans 02 for slideshare
 
Comte de lautréamont maldoror'un şarkıları
Comte de lautréamont   maldoror'un şarkılarıComte de lautréamont   maldoror'un şarkıları
Comte de lautréamont maldoror'un şarkıları
 
Paket Lighting Minimalis
Paket Lighting MinimalisPaket Lighting Minimalis
Paket Lighting Minimalis
 
Two Worlds
Two WorldsTwo Worlds
Two Worlds
 
Paket Pensi Lengkap
Paket Pensi LengkapPaket Pensi Lengkap
Paket Pensi Lengkap
 
Anarsi Felsefesi Ve İdeali
Anarsi Felsefesi Ve İdealiAnarsi Felsefesi Ve İdeali
Anarsi Felsefesi Ve İdeali
 
Green lantern
Green lanternGreen lantern
Green lantern
 
11businessletternominchimeg 090924125447-phpapp02 2
11businessletternominchimeg 090924125447-phpapp02 211businessletternominchimeg 090924125447-phpapp02 2
11businessletternominchimeg 090924125447-phpapp02 2
 
Capacitacion VTEX workshop artesanos del ecommerce: User Experience y SEO
Capacitacion VTEX workshop artesanos del ecommerce: User Experience y SEOCapacitacion VTEX workshop artesanos del ecommerce: User Experience y SEO
Capacitacion VTEX workshop artesanos del ecommerce: User Experience y SEO
 
Lab11 7 вариант (про великого человека) 2 версия
Lab11 7 вариант (про великого человека) 2 версияLab11 7 вариант (про великого человека) 2 версия
Lab11 7 вариант (про великого человека) 2 версия
 
Rotary D9520 Membership Seminar Loxton 2014
Rotary D9520 Membership Seminar Loxton 2014Rotary D9520 Membership Seminar Loxton 2014
Rotary D9520 Membership Seminar Loxton 2014
 
Comparative and Superlative
Comparative and SuperlativeComparative and Superlative
Comparative and Superlative
 
Sharing your club message through social media (Steve Hayter)
Sharing your club message through social media (Steve Hayter)Sharing your club message through social media (Steve Hayter)
Sharing your club message through social media (Steve Hayter)
 
Sharing your club message through social media steve hayter
Sharing your club message through social media steve hayterSharing your club message through social media steve hayter
Sharing your club message through social media steve hayter
 
Paket Alat Musik Lengkap
Paket Alat Musik LengkapPaket Alat Musik Lengkap
Paket Alat Musik Lengkap
 

Similar to Adobe Experience Manager - Replication deep dive

Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component ResuseJustin Edelson
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6Jukka Zitting
 
Docker Containers for Continuous Delivery
Docker Containers for Continuous DeliveryDocker Containers for Continuous Delivery
Docker Containers for Continuous DeliverySynerzip
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Aysylu Greenberg
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...whywaita
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...WSO2
 
Why is my digital spend so high?
Why is my digital spend so high?Why is my digital spend so high?
Why is my digital spend so high?Appvia
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentLeandro Totino Pereira
 
Serverless Summit 22 - micro-frontends aws archiecture
Serverless Summit 22 - micro-frontends aws archiectureServerless Summit 22 - micro-frontends aws archiecture
Serverless Summit 22 - micro-frontends aws archiecturelagrotteri
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsEdwin Rojas
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...IBM UrbanCode Products
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Lucas Jellema
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
Cloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative PipelinesCloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative PipelinesC4Media
 
Developing applications with Hyperledger Fabric SDK
Developing applications with Hyperledger Fabric SDKDeveloping applications with Hyperledger Fabric SDK
Developing applications with Hyperledger Fabric SDKHorea Porutiu
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Luis Lopez
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerAndrew Phillips
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024Cloud Native NoVA
 

Similar to Adobe Experience Manager - Replication deep dive (20)

Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component Resuse
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6
 
Docker Containers for Continuous Delivery
Docker Containers for Continuous DeliveryDocker Containers for Continuous Delivery
Docker Containers for Continuous Delivery
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
 
Why is my digital spend so high?
Why is my digital spend so high?Why is my digital spend so high?
Why is my digital spend so high?
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous Deployment
 
Serverless Summit 22 - micro-frontends aws archiecture
Serverless Summit 22 - micro-frontends aws archiectureServerless Summit 22 - micro-frontends aws archiecture
Serverless Summit 22 - micro-frontends aws archiecture
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool Wizards
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
Cloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative PipelinesCloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative Pipelines
 
Developing applications with Hyperledger Fabric SDK
Developing applications with Hyperledger Fabric SDKDeveloping applications with Hyperledger Fabric SDK
Developing applications with Hyperledger Fabric SDK
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 

Recently uploaded

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

Adobe Experience Manager - Replication deep dive

  • 1. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. AEM Replication deep dive Matthias Wermund Acquity Group part of Accenture Interactive
  • 2. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Replication overview • AEM replication is used for (un)publishing of AEM content • Most interaction between AEM Author and AEM Publish is part of replication
  • 3. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Key replication components • Agent – One per receiving end • Queue – Tracks replication requests – One per agent • ContentBuilder – Transforms replicated content to payload
  • 4. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Types of replication • Activate / Deactivate – Durbo – Flush – Binary-less – Static • Reverse replication
  • 5. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Dispatcher cache flush • HTTP request to web server module • Effect dependent on dispatcher configuration – Deletion of activated content – Invalidation of related content (statfileslevel) • On Author vs. On Publish – Race condition of replication and invalidation – On Publish safer, but not always possible
  • 6. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Ways to trigger replication • Page authoring • Tree activation • Workflow • Custom code (API)
  • 7. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Scenario: Publication preview • Before going live to end users, preview of change in internal AEM Publish is required • Solution approach: – Integration in publishing workflow – Activation to only selected AEM Publish – Review & approve before standard activation
  • 8. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Publishing workflow
  • 9. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Custom workflow process step 11 22 33
  • 10. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Scenario: Global replication notification • All replication invocations need to trigger an external search index update • Solution approach: – Implement OSGi listener for replication events – Get replication metadata from event – Trigger indexing based on replication type
  • 11. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Replication event listener 11 22
  • 12. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Scenario: Guaranteed replication • Before Author users are asked to review, the activation to Preview Publish must have been successfully completed • Solution approach: – Use synchronous replication – Verify success via replication listener
  • 13. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Advanced publishing workflow
  • 14. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Synchronous replication with listener 11 22
  • 15. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Scenario: Data filtering • For privacy, author user information must get removed from AEM Publish content • Solution approach: – Create custom content filter implementation – Filter out undesired properties
  • 16. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Custom ReplicationContentFilter 11 22
  • 17. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. ReplicationContentFilterFactory
  • 18. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Scenario: Custom replication payload • When publishing, content must get exported to a 3rd party system in JSON • Solution approach: – Create a custom ContentBuilder – Invoke standard JSON renderer for page – Send HTTP POST using replication agent
  • 19. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. ContentBuilder implementation (1/2) 11 22
  • 20. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. ContentBuilder implementation (2/2) 33 44
  • 21. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. JSON replication agent
  • 22. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Scenario: Content partitioning • Different sites must get replicated only to dedicated AEM Publish instances • Solution approach: – Create system user account per site – Configure replication agent with user account – Configure ACL to READ for only one site
  • 23. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Configure agent with user account
  • 24. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Setup ACL for single site
  • 25. CIRCUIT – An Adobe Developer Event Presented by CITYTECH, Inc. Thanks • Questions? matthias.c.wermund@accenture.com github.com/mwmd

Editor's Notes

  1. - Personal intro In this session I’ll speak about the replication framework in AEM, and go into some non-standard use cases with possible solutions for them. Question 1: Who knows what AEM replication is and how to use it? Question 2: Who has implemented a custom ReplicationContentFilter? ((Last question: Who has implemented a custom ContentBuilder for replication?))
  2. - Almost everyone is using replication because by nature of AEM if you use an Author and a Publish instance, you’ll use replication. I always think of replication framework as a somewhat “hidden gem”: It’s much more powerful than only supporting the standard use cases
  3. Agent: Main configuration object; typically each Agent triggers one HTTP request Lots of options: Transport details, Triggers, Versioning Queue: Persisted, survives instance restart ContentBuilder
  4. Activate/Deactivate takes care of controlling Publish visibility of content Durbo: Default replication mechanism, packaging content for transport Flush: Dispatcher cache flushing, more on that in a bit Binary-less: More efficient transport for large objects like Assets. Assumes the data store is shared between Author and Publish instances. Static: Writes replicated content into file system, for example for archival Reverse replication: Transport of user generated content from Publish to Author, deserves its own session
  5. Dispatcher.any configuration file
  6. Authoring: Sidekick and SiteAdmin Implicit, example: Activated page move Tree Activation: Bulk activation tool Workflow: Out of the box steps, customizations (will show example) Custom code: Replication API provides extensible framework In the following, several use case scenarios will demonstrate how to leverage the available API
  7. Reasons for Publish Preview: Give non-author users ability to see content External system integrations sometimes not feasible in Author (infrastructure etc.)
  8. Inserted process step using custom implementation Custom step will activate to only the Preview Publish instance Users can review the content in Preview Publish Manual approval will trigger standard activation to all AEM Publishs
  9. 1: ReplicationOptions allows per-replication configuration of agent, overriding agent config 2: AgentIdFilter: Will ignore all agents except the one specified. 3: Replicator: Central service to trigger replication actions. Needs a valid JCR session to execute against. At this point, replication item got added to the Agent’s queue.
  10. For example delta updates to search index inbetween scheduled major full index rebuilds Approach is very broadly applicable to any kind of replication triggered operation. But Listener will get called for all Replication events, no filtering for content path or other possible.
  11. 1: OSGi EventHandler implementation, subscribing to Replication events 2: Convert generic Event data to Replication metadata using Replication API Then react based on Replication metadata, here updating or dropping items in the search index.
  12. “Guaranteed” in sense of: The result is known when proceeding after call of service The default replication method is asynchronous and using the agent’s queue. Synchronous bypasses the queue and executes the replication immediately. Use of ReplicationListener is necessary to get result of replication action.
  13. Added OR split, based on result of preview activation
  14. 1: Make replication synchronous. Default is asynchronous. Specify listener to be used during replication process. 2: Verify replication success and put result in workflow metadata so other processes can access the result.
  15. 1: Implements interface of Replication API. Isn’t an OSGi component because of Factory pattern. 2: “Accepts” method called for each property on every node during replication - Interface also supports filtering of full nodes.
  16. - OSGi factory to make the custom ContentFilter known to the container. - One can filter the for specific activation actions, for example only type ACTIVATE.
  17. Example: Content syndication to J2EE application stack Custom ConentBuilder: Triggers the transformation to JSON JSON renderer: Same out of the box functionality when using JSON extension HTTP POST is simple configuration of a new replication agent, similar to standard replication agents
  18. 1: OSGi service declaration, implementing ContentBuilder interface 2: Create method handles transformation of node structure to replication payload - ReplicationContent.VOID if no payload required (example: Dispatcher Flush)
  19. 3: Leveraging standard JSON renderer to generate JSON payload 4: ReplicationContentFactory will store the payload
  20. Custom builder will be listed because of being an OSGi service for ContentBuilder interface The Serialization will generate the request payload. Everything else of the agent remains the normal functionality (HTTP request etc.)
  21. Typical multi-tenant scenario. One client, shared author for reuse of content.Separation of Publish instances could be for infrastructure reasons, or different security requirements. !! Works for Dispatcher Flush agents too (separating Dispatcher cache control per site) !!
  22. Default system user has access to everything Custom user configured for this agent. All replication actions for this agent will impersonate to this user.
  23. User account specific for standard geometrixx site No access other than READ on the /content/geometrixx tree Log output when attempting a replication for another site (geometrixx outdoors) using this replication agent
  24. Questions?