Does anybody know of a design pattern that tackles the complexity of synchronising two identical relational databases? I keep running into this challenge on various projects and can't find a suitable pattern that deals with it in depth. The specific challenges that I am facing are:
If anybody knows of a pattern, or even a stack, that tackles these challenges, I would love to hear your thoughts. I have tried using MS Sync Framework and while it does address many of the issues involved in data synchronisation, it isn't a complete solution in terms of the challenges listed above.
Please check the
Master-Master Row-Level Synchronization
Context
You are about to design a replication between a source and a target, as described in Master-Master Replication. Your requirements are:
The replication set is updateable at either end of the replication.
Updates need to be transmitted to the other party.
Conflicts need to be detected and resolved at defined points in time, following defined data integrity rules.
Potential conflicts in the changes are to be resolved at the row level.
Solution
Create a pair of related replication links between the source and target as described in the Master-Master Replication pattern. Additionally, create a synchronization controller to manage the synchronization and connect the links. This solution describes the function of one of these replication links. The other replication link behaves the same way, but in the opposite direction. To synchronize more than two copies of the replication set, create the appropriate replication link pair for each additional copy.
Hint: When designing the replication link, it is important to know what types of conflicts can occur and how to handle them so that the integrity of replicated data remains intact. The design of conflict detection and conflict resolution is described in the Master-Master Replication pattern.
More data movemevent patterns on:
Data Movement Patterns
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With