We're in the process of replacing a legacy system. There is going to be a period of time with both the applications running in tandem. Users will be able to use either system and the challenge is to be able to keep their databases in sync with each other.
The new system is ASP.NET and the legacy is VB6. Both are running on a SQL Server database. It is unclear at this time if the databases will be in the same server room, let alone the same country.
The two solutions on the table so far are:
A single windows service that polls each database and works out what's changed and forwards adapted updates as appropriate.
Both solutions seem reasonable. Both solutions have pros and cons. The business has asked for no more than a 2 second delay(!) between updating one system and seeing it in the other. That's possibly a stretch target but it's something to aim for.
Others that have been suggested but rejected (I'm willing to reconsider) are:
Appreciate any thoughts you may have.
EDIT: N.B. The schemas are completely different.
In the end this was solved with a webservice. It worked really well.