Systems and methods for synchronizing data stores. A framework including a
sync runtime enables consistent and manageable synchronization between a
data store and multiple, diverse back end data stores. The sync runtime
provides services such as change enumeration, conflict detection,
metadata management, item ID matching, sync interruptability, and the
like that are accessible to configurable adapters over an application
programming interface. Each synchronizing data store can uses a sync
controller to initialize an adapter that can access the services provided
by the sync runtime. The sync controller can use a profile to configure
each adapter. The profile can identify conflict resolution policies,
synchronization filters, source and destination folders, sync direction,
and the like.