Part 6: the “on demand” part... the evolution of technology has unfolded into a plethora of technologies and programming languages to solve the problems we face. However, all too often these technologies must be bridged in order to achieve a higher purpose previously unattainable. That is were PERL comes in for me, an ambitious developing JAPH. I must caution your use of user initialization of the on demand part: I quote you "At times they make changes to the data on A. When they do that, steps in 4 should be run on demand, typically by pressing a button on the UI“ This may be a perfectly effective way of implementing this transference of data between technologies but, my experience is to never trust the end user. I would recommend automating the process as much as possible. You could read from an etime (edited time) of the record you could programmatically keep track of all the etimes in you master db you will know when to write to the slave db. Task Schedule your program to scan etimes every 10min, correlate and reallocate modified data. This would ensure that no data will ever be lost and the other db always has the data it needs. As far as the XML modules I am sure there are a plethora of them just make sure you scrub the web for additional repositories that don't come standard with the ActiveState Perl build. In these alternate repositories like Jenda's or Dave Roth's repositories you will find many win32 and possibly XML modules not available with the standard activestate's repository.