in App/src/Events-Tenant.Common/Utilities/Sharding.cs [140:155]
public static void ResolveMappingDifferences(int TenantId, bool UseGlobalShardMap = false)
{
var shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(_shardMapConnectionString, ShardMapManagerLoadPolicy.Lazy);
var recoveryManager = shardMapManager.GetRecoveryManager();
var tenantMapping = ShardMap.GetMappingForKey(TenantId);
var mappingDifferencesList = recoveryManager.DetectMappingDifferences(tenantMapping.Shard.Location, ShardMap.Name);
foreach(var mismatch in mappingDifferencesList)
{
if (!UseGlobalShardMap)
recoveryManager.ResolveMappingDifferences(mismatch, Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement.Recovery.MappingDifferenceResolution.KeepShardMapping);
else
recoveryManager.ResolveMappingDifferences(mismatch, Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement.Recovery.MappingDifferenceResolution.KeepShardMapMapping);
}
}