Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>This is a pretty common integration scenario, I believe. Personally, I think an asynchronous messaging solution using a queue is ideal. </p> <p>You should be able to achieve near real time synchronization without the overhead or complexity of something like replication. </p> <p>Synchronous web services are not ideal because your code will have to be very sophisticated to handle failure scenarios. What happens when one system is restarted while the other continues to publish changes? Does the sending system get timeouts? What does it do with those? Unless you are prepared to lose data, you'll want some sort of transactional queue (like MSMQ) to receive the change notices and take care of making sure they get to the other system. If either system is down, the changes (passed as messages) will just accumulate and as soon as a connection can be established the re-starting server will process all the queued messages and catch up, making system integrity much, much easier to achieve.</p> <p>There are some open source tools that can really make this easy for you if you are using .NET (especially if you want to use MSMQ).</p> <ol> <li><a href="http://www.nservicebus.com/" rel="nofollow noreferrer">nServiceBus</a> by Udi Dahan</li> <li><a href="http://code.google.com/p/masstransit/" rel="nofollow noreferrer">Mass Transit</a> by Dru Sellers and Chris Patterson</li> </ol> <p>There are commercial products also, and if you are considering a commercial option see <a href="http://www.thefreakparade.com/2008/06/esbs-for-the-microsoft-net-platform/" rel="nofollow noreferrer">here</a> for a list of of options on .NET. Of course, WCF can do async messaging using MSMQ bindings, but a tool like nServiceBus or MassTransit will give you a very simple Send/Receive or Pub/Sub API that will make your requirement a very straightforward job.</p> <p>If you're using Java, there are any number of open source service bus implementations that will make this kind of bi-directional, asynchronous messaging a snap, like Mule or maybe just ActiveMQ.</p> <p>You may also want to consider reading <a href="http://www.udidahan.com/" rel="nofollow noreferrer">Udi Dahan'</a>s blog, listening to some of his podcasts. Here are <a href="https://stackoverflow.com/questions/13211/good-reads-for-distributed-systems#13244">some more good resources</a> to get you started.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload