I'm having a little trouble locating what I want in the docs, so if this
is explained in a doc somewhere, a pointer to that doc would be just as
welcome as a direct answer.

Start with a scenario:

A1 ----- ESB1 -------------------- ESB2 ------- A2
          |                         |
         DB1                       DB2


A1 and A2 are application servers.
DB1 and DB2 are database servers that serve A1 and A2 (respectively).
ESB1 and ESB2 are ServiceMix servers that use ActiveMQ to communicate.
The link between ESB1 and ESB2 is a high-latency link that is not
as reliable as the other links ... I.e. all the *1 systems are in a
single datacenter connected by gigabit, and all the *2 systems are
in a different datacenter, and the connection between the datacenters
is a VPN over the public internet across a considerable distance (the
width of the US, for example)

Either A1 or A2 can push changes to data in both DB1 and DB2 by
submitting those changes to the local ESB.  The ESB will then make
those changes to the local database and propagate the request to
the other ESB, that will then make the changes to the other database.

What I'm trying to determine is what happens when A1 and A2 are both
making changes rapidly to the same data in conflicting ways.  What
I _expect_ will happen is that the changes will arrive at each database
in a different order, and thus DB1 and DB2 will not have the same data.
i.e., if A1 changes record 1 to 5, and A2 changes record 1 to 7 at
the same instant, DB1 will eventually have a value of 7 (because the
message from A2 took longer to arrive) and DB2 will have a value of
5.

However, I don't want to rule out the possibility that ActiveMQ has
some super-duper communication technique that will prevent that kind
of thing by guaranteeing message ordering across ESBs.  If there is
such a technology in place, I'm interested to read up on the documentation
on it to understand the capabilities and limitations.

TIA for any feedback.

-- 
http://www.intermedix.com
Bill Moran
Senior Vice President of Databases
Phone: 412-422-3463x4023

The information contained in this message is confidential and may be
privileged and/or protected under law. If you received this message in
error, please notify us immediately by forwarding a copy to
karen.coll...@intermedix.com and then deleting the original message and
any attachments.

Reply via email to