In het verleden heb ik SQL Server en SQLCE gebruikt om deze functionaliteit uit te voeren.
U kunt definiëren hoe, wanneer en wat wordt gesynchroniseerd, en of het een synchronisatie in één richting of in twee richtingen is en allerlei andere fijne goodies.
Het enige probleem (vanuit je vragen POV) is dat het niet over meerdere platformen gaat.
Dat gezegd hebbende, het synchronisatiesysteem is op zichzelf niet zo complex. Het is gewoon een kwestie van CRUD-uitspraken, met de juiste tijdstempels en het vermogen om dingen te herkennen op de juiste toetsen, en natuurlijk een GRAVEYARD-tabel die het volgen van verwijderingen mogelijk maakt.