title: Updating two different database at the same time
body: <p>Let's say I have two Databases like so :</p>
  
  <p><strong>DatabaseA</strong></p>
  
  <blockquote>
    <p>create table <strong>Table1</strong> ( field1 int, field2 int, field3 int )</p>
  </blockquote>
  
  <p><strong>DatabaseB</strong></p>
  
  <blockquote>
    <p>create table <strong>Table1</strong> ( field1 int, field2 int )</p>
  </blockquote>
  
  <p>Our old application uses <strong>B</strong> and must continue to do so. We are developing a new application that is going to use <strong>A</strong>. What is the best way to make sure all changes in <strong>A:Table1</strong> are replicated in <strong>B:Table1</strong> ?  </p>
  
  <hr>
  
  <p>Here are a few things to consider:</p>
  
  <ul>
  <li>The old application will only do <code>selects</code> in <strong>B:Table1</strong>, no need for the syncronization to go both ways.</li>
  <li>The old application <strong>must</strong> keep using <strong>B</strong>.</li>
  <li>Most of the fields in <strong>A:Table1</strong> are the same as <strong>B:Table1</strong>, but some type of data conversion will be needed in some cases.</li>
  <li>Performance is not a big problem, because there isn't going to be a lot of modification.</li>
  <li>At first, there will only be 1-2 tables that need to be syncronized, but as we migrate more modules to the new version, more tables will be added.</li>
  <li>Both databases are from different vendor.</li>
  </ul>
  
  <hr>
  
  <p>Here are the options I have considered :</p>
  
  <ul>
  <li>In the new application, make update to the two databases:<br>
  <em>I don't like this option, because it adds a lot of complexity to the new application datalayer and there is no transactions between the two databases</em></li>
  <li>Using triggers in <strong>A</strong> to launch an <code>application</code> that will replicate the changes in <strong>B</strong><br>
  <em>Not sure if that is a good practice and how reliable it is</em></li>
  <li>Using triggers in <strong>A</strong> to launch a <code>stored procedure</code> to replicate the changes<br>
  <em>Some of the data conversion might be too complicated to do in a stored procedure</em></li>
  <li>Launch an application or a stored procedure at a set interval to make the changes<br>
  <em>Not real time, so I would rather not use this</em></li>
  </ul>
  
  <hr>
  
  <p>What are your toughs on this ?<br>
  Did I miss another option ?<br>
  Have you ever done something similar ?<br>
  Is there a software (free or not) that might do the job ?  </p>
  
  <p>As always, thank you all for your time and your input.</p>