A synchronization system schedules the reporting of synchronization states
between a synchronization client computing device and a synchronization
server appliance device, based on relevant events in the synchronization
process. A file system hierarchy is built by a scanning module based on
recursive scanning of the file system on the synchronization client
computing device. Events are detected by a file system watcher function
and announced to the scanning module via an event queue. If a file state
change is detected, the scanning module creates a synchronization report
describing the file state change and schedules transmission of the
synchronization report to the synchronization server appliance device,
dependent on a prior action (e.g., a last file state change for the file,
the last synchronization or upload time, the last reporting time, etc.).