Yo tengo un sistema de ese tipo.
Casi todas las tablas de la aplicación pueden viajar de un servidor a otro, y sí, no estaba dispuesto a crear un proceso para cada tabla.
En mi caso me decidí por crear una tabla de paquetes de datos:
Contiene el nombre de tabla, definición de su clave primaria, si está activo o no el paquete, y una serie de datos de control.
Luego tiene una tabla de campos de ese paquete, para definir el orden en el que se exportan e importan los campos, esto es muy importante, pues en js no existe el comando “modificar campo solamente”, y si te limitas a importar los campos en orden, puede que algún contenido inicial te juegue una mala pasada, tienes que tener un mecanismo para especificar qué campos y en qué orden procesarlos.
Para controlar las comunicaciones creé tabla de bandeja de salida y bandeja de entrada, cada registro tiene un objeto JSON a procesar, estado del paquete, etc…
El paquete lo mando desde la bandeja de salida del servidor origen a la de entrada del servidor destino, usando una función remota, pero se podría usar cualquier otro método, ficheros por FTP, SDV … .
De este modo los mismos scripts me sirven para cualquier tabla, para mandar una tabla más, sólo tengo que crear un nuevo registro en la tabla de paquetes de datos.
Es un tema puñetero, jejejeje.