From 3a7cd1ae11b7af029be881ec72a89d255ad830ec Mon Sep 17 00:00:00 2001 From: Roma Marusyk Date: Mon, 16 Nov 2020 23:05:13 +0200 Subject: [PATCH] Service Bus persisted connection for ISubscriptionClient --- .../DefaultServiceBusPersisterConnection.cs | 38 +++++++++++++------ .../EventBusServiceBus/EventBusServiceBus.cs | 35 ++++++++--------- .../IServiceBusPersisterConnection.cs | 5 +-- src/Services/Basket/Basket.API/Startup.cs | 10 ++--- src/Services/Catalog/Catalog.API/Startup.cs | 10 ++--- .../Location/Locations.API/Startup.cs | 10 ++--- .../Marketing/Marketing.API/Startup.cs | 10 ++--- src/Services/Ordering/Ordering.API/Startup.cs | 10 ++--- .../Extensions/CustomExtensionMethods.cs | 6 +-- .../Ordering/Ordering.SignalrHub/Startup.cs | 11 +++--- src/Services/Payment/Payment.API/Startup.cs | 10 ++--- src/Services/Webhooks/Webhooks.API/Startup.cs | 9 ++--- 12 files changed, 78 insertions(+), 86 deletions(-) diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs index a3f563c2fa..f8c1f90691 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs @@ -1,37 +1,51 @@ using Microsoft.Azure.ServiceBus; -using Microsoft.Extensions.Logging; using System; namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus { - public class DefaultServiceBusPersisterConnection :IServiceBusPersisterConnection + public class DefaultServiceBusPersisterConnection : IServiceBusPersisterConnection { - private readonly ILogger _logger; private readonly ServiceBusConnectionStringBuilder _serviceBusConnectionStringBuilder; + private readonly string _subscriptionClientName; private ITopicClient _topicClient; + private SubscriptionClient _subscriptionClient; bool _disposed; public DefaultServiceBusPersisterConnection(ServiceBusConnectionStringBuilder serviceBusConnectionStringBuilder, - ILogger logger) + string subscriptionClientName) { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - _serviceBusConnectionStringBuilder = serviceBusConnectionStringBuilder ?? throw new ArgumentNullException(nameof(serviceBusConnectionStringBuilder)); + _subscriptionClientName = subscriptionClientName; _topicClient = new TopicClient(_serviceBusConnectionStringBuilder, RetryPolicy.Default); + _subscriptionClient = new SubscriptionClient(_serviceBusConnectionStringBuilder, subscriptionClientName); } - public ServiceBusConnectionStringBuilder ServiceBusConnectionStringBuilder => _serviceBusConnectionStringBuilder; - - public ITopicClient CreateModel() + public ITopicClient TopicClient { - if(_topicClient.IsClosedOrClosing) + get { - _topicClient = new TopicClient(_serviceBusConnectionStringBuilder, RetryPolicy.Default); + if (_topicClient.IsClosedOrClosing) + { + _topicClient = new TopicClient(_serviceBusConnectionStringBuilder, RetryPolicy.Default); + } + + return _topicClient; } + } - return _topicClient; + public ISubscriptionClient SubscriptionClient + { + get + { + if (_subscriptionClient.IsClosedOrClosing) + { + _subscriptionClient = new SubscriptionClient(_serviceBusConnectionStringBuilder, _subscriptionClientName); + } + + return _subscriptionClient; + } } public void Dispose() diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs index 53ae33ae0f..841c303f7f 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs @@ -17,21 +17,16 @@ public class EventBusServiceBus : IEventBus private readonly IServiceBusPersisterConnection _serviceBusPersisterConnection; private readonly ILogger _logger; private readonly IEventBusSubscriptionsManager _subsManager; - private readonly SubscriptionClient _subscriptionClient; private readonly ILifetimeScope _autofac; private readonly string AUTOFAC_SCOPE_NAME = "eshop_event_bus"; private const string INTEGRATION_EVENT_SUFFIX = "IntegrationEvent"; public EventBusServiceBus(IServiceBusPersisterConnection serviceBusPersisterConnection, - ILogger logger, IEventBusSubscriptionsManager subsManager, string subscriptionClientName, - ILifetimeScope autofac) + ILogger logger, IEventBusSubscriptionsManager subsManager, ILifetimeScope autofac) { _serviceBusPersisterConnection = serviceBusPersisterConnection; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); - - _subscriptionClient = new SubscriptionClient(serviceBusPersisterConnection.ServiceBusConnectionStringBuilder, - subscriptionClientName); _autofac = autofac; RemoveDefaultRule(); @@ -51,9 +46,7 @@ public void Publish(IntegrationEvent @event) Label = eventName, }; - var topicClient = _serviceBusPersisterConnection.CreateModel(); - - topicClient.SendAsync(message) + _serviceBusPersisterConnection.TopicClient.SendAsync(message) .GetAwaiter() .GetResult(); } @@ -77,7 +70,7 @@ public void Subscribe() { try { - _subscriptionClient.AddRuleAsync(new RuleDescription + _serviceBusPersisterConnection.SubscriptionClient.AddRuleAsync(new RuleDescription { Filter = new CorrelationFilter { Label = eventName }, Name = eventName @@ -102,10 +95,11 @@ public void Unsubscribe() try { - _subscriptionClient - .RemoveRuleAsync(eventName) - .GetAwaiter() - .GetResult(); + _serviceBusPersisterConnection + .SubscriptionClient + .RemoveRuleAsync(eventName) + .GetAwaiter() + .GetResult(); } catch (MessagingEntityNotFoundException) { @@ -132,7 +126,7 @@ public void Dispose() private void RegisterSubscriptionClientMessageHandler() { - _subscriptionClient.RegisterMessageHandler( + _serviceBusPersisterConnection.SubscriptionClient.RegisterMessageHandler( async (message, token) => { var eventName = $"{message.Label}{INTEGRATION_EVENT_SUFFIX}"; @@ -141,7 +135,7 @@ private void RegisterSubscriptionClientMessageHandler() // Complete the message so that it is not received again. if (await ProcessEvent(eventName, messageData)) { - await _subscriptionClient.CompleteAsync(message.SystemProperties.LockToken); + await _serviceBusPersisterConnection.SubscriptionClient.CompleteAsync(message.SystemProperties.LockToken); } }, new MessageHandlerOptions(ExceptionReceivedHandler) { MaxConcurrentCalls = 10, AutoComplete = false }); @@ -194,10 +188,11 @@ private void RemoveDefaultRule() { try { - _subscriptionClient - .RemoveRuleAsync(RuleDescription.DefaultRuleName) - .GetAwaiter() - .GetResult(); + _serviceBusPersisterConnection + .SubscriptionClient + .RemoveRuleAsync(RuleDescription.DefaultRuleName) + .GetAwaiter() + .GetResult(); } catch (MessagingEntityNotFoundException) { diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/IServiceBusPersisterConnection.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/IServiceBusPersisterConnection.cs index 52737cef72..8863db62ec 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/IServiceBusPersisterConnection.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/IServiceBusPersisterConnection.cs @@ -5,8 +5,7 @@ public interface IServiceBusPersisterConnection : IDisposable { - ServiceBusConnectionStringBuilder ServiceBusConnectionStringBuilder { get; } - - ITopicClient CreateModel(); + ITopicClient TopicClient { get; } + ISubscriptionClient SubscriptionClient { get; } } } \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index e8576b238e..2fbad6891a 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -124,12 +124,11 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = Configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + var subscriptionClientName = Configuration["SubscriptionClientName"]; + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -286,8 +285,6 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) private void RegisterEventBus(IServiceCollection services) { - var subscriptionClientName = Configuration["SubscriptionClientName"]; - if (Configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -298,13 +295,14 @@ private void RegisterEventBus(IServiceCollection services) var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } else { services.AddSingleton(sp => { + var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 836b6a7b81..e033ee0ad1 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -281,11 +281,10 @@ public static IServiceCollection AddIntegrationServices(this IServiceCollection services.AddSingleton(sp => { var settings = sp.GetRequiredService>().Value; - var logger = sp.GetRequiredService>(); - var serviceBusConnection = new ServiceBusConnectionStringBuilder(settings.EventBusConnection); + var subscriptionClientName = configuration["SubscriptionClientName"]; - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -326,8 +325,6 @@ public static IServiceCollection AddIntegrationServices(this IServiceCollection public static IServiceCollection AddEventBus(this IServiceCollection services, IConfiguration configuration) { - var subscriptionClientName = configuration["SubscriptionClientName"]; - if (configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -338,7 +335,7 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } @@ -346,6 +343,7 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I { services.AddSingleton(sp => { + var subscriptionClientName = configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index ca6a57e6e5..23e1a105af 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -60,12 +60,11 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = Configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); + var subscriptionClientName = Configuration["SubscriptionClientName"]; - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -236,8 +235,6 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) private void RegisterEventBus(IServiceCollection services) { - var subscriptionClientName = Configuration["SubscriptionClientName"]; - if (Configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -248,13 +245,14 @@ private void RegisterEventBus(IServiceCollection services) var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } else { services.AddSingleton(sp => { + var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index a7386a5323..4de9083e94 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -83,12 +83,11 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = Configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); + var subscriptionClientName = Configuration["SubscriptionClientName"]; - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -253,8 +252,6 @@ private void ConfigureAuthService(IServiceCollection services) private void RegisterEventBus(IServiceCollection services) { - var subscriptionClientName = Configuration["SubscriptionClientName"]; - if (Configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -265,13 +262,14 @@ private void RegisterEventBus(IServiceCollection services) var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } else { services.AddSingleton(sp => { + var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index a8da9a35c7..5003fae86a 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -304,12 +304,11 @@ public static IServiceCollection AddCustomIntegrations(this IServiceCollection s { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); + var subscriptionClientName = configuration["SubscriptionClientName"]; - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -375,8 +374,6 @@ public static IServiceCollection AddCustomConfiguration(this IServiceCollection public static IServiceCollection AddEventBus(this IServiceCollection services, IConfiguration configuration) { - var subscriptionClientName = configuration["SubscriptionClientName"]; - if (configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -387,13 +384,14 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } else { services.AddSingleton(sp => { + var subscriptionClientName = configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs index 82ffae84f1..ffdf681614 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs @@ -53,12 +53,10 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); services.AddSingleton(sp => @@ -68,7 +66,7 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope); }); } else diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 23aaa7c78c..9d987d43ea 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -64,12 +64,12 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = Configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + var subscriptionClientName = Configuration["SubscriptionClientName"]; + + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -205,8 +205,6 @@ private void ConfigureAuthService(IServiceCollection services) private void RegisterEventBus(IServiceCollection services) { - var subscriptionClientName = Configuration["SubscriptionClientName"]; - if (Configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -217,13 +215,14 @@ private void RegisterEventBus(IServiceCollection services) var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } else { services.AddSingleton(sp => { + var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Payment/Payment.API/Startup.cs b/src/Services/Payment/Payment.API/Startup.cs index 77b8d55fd4..a39d3b97d4 100644 --- a/src/Services/Payment/Payment.API/Startup.cs +++ b/src/Services/Payment/Payment.API/Startup.cs @@ -40,12 +40,11 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); - var serviceBusConnectionString = Configuration["EventBusConnection"]; var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); + var subscriptionClientName = Configuration["SubscriptionClientName"]; - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else @@ -123,8 +122,6 @@ private void RegisterAppInsights(IServiceCollection services) private void RegisterEventBus(IServiceCollection services) { - var subscriptionClientName = Configuration["SubscriptionClientName"]; - if (Configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -135,13 +132,14 @@ private void RegisterEventBus(IServiceCollection services) var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } else { services.AddSingleton(sp => { + var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index c8073e1a0c..dcc098871b 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -220,8 +220,6 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC } public static IServiceCollection AddEventBus(this IServiceCollection services, IConfiguration configuration) { - var subscriptionClientName = configuration["SubscriptionClientName"]; - if (configuration.GetValue("AzureServiceBusEnabled")) { services.AddSingleton(sp => @@ -232,7 +230,7 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + eventBusSubcriptionsManager, iLifetimeScope); }); } @@ -240,6 +238,7 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I { services.AddSingleton(sp => { + var subscriptionClientName = configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); @@ -299,9 +298,9 @@ public static IServiceCollection AddIntegrationServices(this IServiceCollection { services.AddSingleton(sp => { - var logger = sp.GetRequiredService>(); var serviceBusConnection = new ServiceBusConnectionStringBuilder(configuration["EventBusConnection"]); - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + var subscriptionClientName = configuration["SubscriptionClientName"]; + return new DefaultServiceBusPersisterConnection(serviceBusConnection, subscriptionClientName); }); } else