IEnumerable <TransportReceiver> BuildPipelines() { var errorQueue = ErrorQueueSettings.GetConfiguredErrorQueue(settings); var dequeueLimitations = GeDequeueLimitationsForReceivePipeline(); var requiredTransactionSupport = settings.GetRequiredTransactionModeForReceives(); var pushSettings = new PushSettings(settings.LocalAddress(), errorQueue, settings.GetOrDefault <bool>("Transport.PurgeOnStartup"), requiredTransactionSupport); yield return(BuildPipelineInstance(pipelineConfiguration.MainPipeline, "Main", pushSettings, dequeueLimitations)); foreach (var satellitePipeline in pipelineConfiguration.SatellitePipelines) { var satellitePushSettings = new PushSettings(satellitePipeline.ReceiveAddress, errorQueue, settings.GetOrDefault <bool>("Transport.PurgeOnStartup"), satellitePipeline.RequiredTransportTransactionMode); yield return(BuildPipelineInstance(satellitePipeline, satellitePipeline.Name, satellitePushSettings, satellitePipeline.RuntimeSettings)); } }