void BuildPipeline(SubscriptionRequestChannelSchema schema, SendMessageCache cache)
 {
     MessagePipelineBuilder.Build()
         .With(new SubscriptionRequestor(schema))
         .ToProcessor(new MessageAddresser(schema.SubscriberAddress, schema.PublisherAddress))
         .ToProcessor(new SendChannelMessageCacher(cache))
         .ToMessageRepeater(cache, systemTime, taskRepeater, ConstantTimeRepeatStrategy.EveryTenSeconds())
         .ToProcessor(new SendChannelMessageCacheUpdater(cache))
         .ToProcessor(new PersistenceSourceRecorder())
         .Pump()
         .ToProcessor(new LastSentRecorder(systemTime))
         .ToProcessor(authenticationSessionAttacherFactory.Create(schema.PublisherAddress))
         .ToEndPoint(messageSender);
 }
 SendMessageCache CreateCache(SubscriptionRequestChannelSchema schema)
 {
     return messageCacheFactory.BuildNonDurableSendCache(PersistenceUseType.SubscriberRequestSend, schema.PublisherAddress);
 }
 public void Build(SubscriptionRequestChannelSchema schema)
 {
     SendMessageCache cache = CreateCache(schema);
     RegisterCacheWithAcknowledgementHandler(cache);
     BuildPipeline(schema, cache);
 }