#Crm2Crm – part 1: To replicate or not to replicate, that’s the question

Recently I switched jobs and joined a small innovate company. One of my first assignments  inspired me to write this blog article.

I was asked to write a report for a client, on measures that could be taken to guarantee continuity with regard to the use of CRM in case of a long term internet outage. The client wanted to be able to continue working with the CRM data no matter what.

One of the fallback scenarios that popped up in my head was a readonly CRM on-premise environment could act as a fallback environment.
Using Scribe technology we can provision the on-premise environment daily with fresh data. In that case the client is able to access the data he needs, and is able to alter the data a later point of time (once the connection has been restored).
Simple but elegant and can be done within a reasonable budget.

However this case keeps running through my head, bringing out the little hacker in me…  is it somehow possible to set up an hybrid environment in which two CRM organizations replicate data to each other?

In which the online environment is going to act as the master and the on-premise environment acts as a slave. The changes made on the on-premise enivornment should be replicated back to the master, without causing a replication storm…


For me interesting enough to start a new series of blog articles in order to find a solution to tackle this problem. In this series of articles I’ll describe the steps I need to take in order to create bidirectional replication between entities. I need to think on:

  • how to keep track of changes (insert, update, delete),
  • how to avoid a replication storm,
  • how to deal with unreliable connections,
  • how to deal with differences in entity schemes
  • maintainablity, a.k.a. how can I implement it with as less maintenance required as possible

In this series of articles, it is not my intention to create an enterprise grade solution. I consider this series as a small research project in which I want to master the mechanics behind replication, in order to be able to advise my clients as good as possible.

In the next article I’ll dive into some more theory describing the mechanics of replication. But first things first, I need to get my new gear up and running and setup a new virtual machine from which I’ll be working.

Stay tuned!

3 thoughts on “#Crm2Crm – part 1: To replicate or not to replicate, that’s the question

  1. Andrew Perkin says:

    Looking forward to this series.

    Master data management is sadly lacking in Dynamics. It should be possible to create an entity as a Master and have it appear in multiple instances of CRM, ideally with the ability to lock it down in all but the solution hosting the ‘Golden records’.

    SQL has Master Data Capabilities that could potentially be used and SSIS would be a sensible and widely available tool to make this work.

    Also notice a number of integration tools now available in Azure..

    Cant wait to see what you come up with..

    • Hi Andrew,

      I was thinking of writing a custom mechanism. Not SSIS as I want to handle it as much in CRM as possible. My goal is to learn more about the mechnanics behind replication. With that regard I try to come up with a solution that can be maintenance free… Anyway I need to setup my image first from there on I can go ahead…

      I’m really looking forward to diving into this subject


  2. […] the previous article I described how I got sparked to investigate how I can create a bi-directional replication […]

Leave a Reply

Your email address will not be published. Required fields are marked *