public UnsubscribeAction Connect(IInboundPipelineConfigurator configurator, IDistributor distributor)
        {
            IWorkerAvailability <TMessage> workerAvailability = distributor.GetWorkerAvailability <TMessage>();

            // TODO we need to make a saga worker availability so that we can split saga load by correlation id
            IWorkerSelector <TMessage> workerSelector = _workerSelectorFactory.GetSelector <TMessage>();

            var sink = new DistributorMessageSink <TMessage>(workerAvailability, workerSelector);

            return(configurator.Pipeline.ConnectToRouter(sink, () => configurator.SubscribedTo <TMessage>()));
        }