In applyChanges, always end applying changes immediately to avoid the possibility of missing changes. If some changes must be applied asynchronously then the callback will ensure that they are not collected/detected as additional changes.