private RegisteredBackend ResolveBackend(string serviceIdentifier, CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                if (this.backendEndpointIds.TryGetValue(serviceIdentifier, out var backendEndpointIds))
                {
                    if (backendEndpointIds.TryDequeue(out string backendIdentifier))
                    {
                        backendEndpointIds.Enqueue(backendIdentifier);

                        if (this.backendEndpoints.TryGetValue(backendIdentifier, out RegisteredBackend candidateBackend) && candidateBackend.IsConnected)
                        {
                            return(this.backendEndpoints[backendIdentifier]);
                        }
                    }
                }
            }

            return(null);
        }