A method of operating a multi-tenant cloud system, the method comprising: at a first data center, authenticating a first client and storing in a first global database global resources that correspond to the first client, the first data center in communication with a second data center that is configured to authenticate the first client and replicate in a second global database the global resources; generating a manifest file comprising a listing of global resource types and schemas that are modified or added in response to upgrading the global resources at the first data center to a new version; at the first data center, upgrading the global resources based on the manifest file and writing the upgraded global resources to the first global database and generating change event messages corresponding to the upgraded global resources; pushing the change event messages to the second data center; at the second data center, in response to receiving the change event messages, comparing a current version with the new version; at the second data center, when the current version is as current or more current than the new version, ignoring the change event messages; at the second data center, when the current version is not more current than the new version, applying the change event messages to upgrade the global resources at the second global database; at the second data center, loading by a replication service the upgraded global resources from the second global database; and at the second data center, changing non-replication services to load older versions of global resources from a binary distribution instead of the second global database. at a first data center, authenticating a first client and storing in a first global database global resources that correspond to the first client, the first data center in communication with a second data center that is configured to authenticate the first client and replicate in a second global database the global resources; generating a manifest file comprising a listing of global resource types and schemas that are modified or added in response to upgrading the global resources at the first data center to a new version; at the first data center, upgrading the global resources based on the manifest file and writing the upgraded global resources to the first global database and generating change event messages corresponding to the upgraded global resources; pushing the change event messages to the second data center; at the second data center, in response to receiving the change event messages, comparing a current version with the new version; at the second data center, when the current version is as current or more current than the new version, ignoring the change event messages; at the second data center, when the current version is not more current than the new version, applying the change event messages to upgrade the global resources at the second global database; at the second data center, loading by a replication service the upgraded global resources from the second global database; and at the second data center, changing non-replication services to load older versions of global resources from a binary distribution instead of the second global database.