Application Level Replication Technologies

I am creating a solution that will be deployed in several data centers in many regions of the world, and each data center with a replicated copy of the data is actively updated in each region. I will have a combination of several databases and file systems in each data center, the state of which must be consistent (inside the data center). These multiple repositories will be allocated a SOA service level.

I can tolerate some delay in replication and must allow regions to be autonomous and then catch up later.

Given multiple background data repositories, I cannot easily rely on independent replication solutions for each of them to maintain a consistent state. Thus, I start the replication implementation at the application level - by replicating the SOA requests in some way. I need to make sure that replication cycles do not occur, and that the conditions of the last writer are sorted correctly.

In your experience, what is the best example to solve this problem, and are there any good products (free or others) that should be explored?

+4
source share
5 answers

Lotus / Domino is your answer. I have been working with him for ten years, and this is exactly what you need. It may not be fashionable (a perception that I would challenge), but its powerful, adaptable and very safe. The latest version of R8 is the best.

+2
source

You should definitely consider IBM Lotus Domino. A Lotus Notes database can be replicated between sites in a predefined schedule. Replication in Notes / Domino is certainly a very powerful feature and allows you to fully replicate data between sites. Even if the server is unavailable the next time it is connected, it will simply replicate and synchronize.

Regarding the SOA service level, you can use Domino Designer to write a web service. Since Notes / Domino 7.5.x (I believe), Domino was able to provide and use web services.

+1
source

Like other recommendations, I also recommend Lotus Notes / Domino. 8.5 is really a very powerful application development platform.

+1
source

You do not give enough details to be sure of your needs, but I think you should check SQL Server Merge replication. It allows asynchronous replication of multiple databases with full resolution of conflicts. You will need to assign a global wizard, and all other databases will be replicated to it, but all database instances will be fully functional (read / write), and you can schedule replication at any time. If any region goes offline, they can catch up later without any problems. If the wizard is sent offline, everyone will work independently until replication resumes.

I would be interested to know about other solutions of this flexibility (with the exception of Lotus Notes / Domino, which is not very fashionable these days).

0
source

I think your answer should be based on pub / sub architecture. I assume that you have reliable messaging between your data centers so that you can ultimately rely on published updates. If all your access to data repositories is through a service, you can add an event notification to organize each of your update services, which notifies all interested data centers of the event. Ideally, the main database is the only one that sends these updates. If the main database is the only one sending updates, you can eliminate the routing of notifications to the node that generated them in the first place, thereby avoiding update cycles.

0
source

Source: https://habr.com/ru/post/1276708/


All Articles