1. A method for synchronizing data between endpoint data stores, comprising: performing a set-intersection on a first local schema associated with a first endpoint data store and a second local schema associated with a second endpoint data store, wherein each of the first and second local schemas organizes data into one or more fields of the corresponding first and second endpoint data stores; generating a virtual schema based on the set-intersection on the first local schema and the second local schema, wherein the virtual schema maps a field in the first local schema to a field in the second local schema; and synchronizing data between the first and second endpoint data stores using the virtual schema.