For Data Synchronization inside Caché you have a range of ways to synchronize objects and tables.
At DB level you can use Shadowing or Mirroring
This works excellent and if you need just a part of your data to be synchronized you may split your
data into smaller pieces using Global mapping
Or if you need bi-directional synchronization on Class/Table level you can use the Object Synchronization Feature
The limit of all these excellent features:
They just work from Caché/IRIS to Caché/IRIS.