Note, the Synchronizer doesn't perform any buffering of data itself (that is left up to TimeSynchronizationSources). Instead, the synchronizer simply acts as a coordinator making sure all sources are ready, determining if sync is possible, etc.