void IBusServiceConfigurator.Configure(IServiceConfigurator configurator)
        {
            LogContext.Info?.Log("Configuring Service: {ServiceName}", TypeMetadataCache.GetShortName(_serviceSpecification.GetType()));

            _serviceSpecification.Configure(configurator);

            foreach (var specification in _endpointSpecifications)
            {
                string queueName;
                int    consumerLimit;
                GetEndpointSettings(specification, out queueName, out consumerLimit);

                LogContext.Info?.Log("Configuring Endpoint: {EndpointName} (queue-name: {Queue}, consumer-limit: {ConsumerLimit})",
                                     TypeMetadataCache.GetShortName(_serviceSpecification.GetType()), queueName, consumerLimit);

                configurator.ReceiveEndpoint(queueName, consumerLimit, x =>
                {
                    specification.Configure(x);

                    LogContext.Info?.Log("Configured Endpoint: {EndpointName} (address: {InputAddress})",
                                         TypeMetadataCache.GetShortName(_serviceSpecification.GetType()), x.InputAddress);
                });
            }

            ConfigureBusObservers(configurator);
        }
        void IBusServiceConfigurator.Configure(IServiceConfigurator configurator)
        {
            _log.Info($"Configuring Service: {_serviceSpecification.GetType().GetTypeName()}");

            _serviceSpecification.Configure(configurator);

            foreach (var specification in _endpointSpecifications)
            {
                string queueName;
                int    consumerLimit;
                GetEndpointSettings(specification, out queueName, out consumerLimit);

                _log.Info($"Configuring Endpoint: {specification.GetType().GetTypeName()} (queue-name: {queueName}, consumer-limit: {consumerLimit})");

                configurator.ReceiveEndpoint(queueName, consumerLimit, x =>
                {
                    specification.Configure(x);
                });
            }
        }