public MultiOutputServiceAdapter(ILogger <SingleOutputServiceAdapter <TInput, TOutput> > logger, IMetricsFactory <SingleOutputServiceAdapter <TInput, TOutput> >?metrics, IMultiOutputService <TInput, TOutput> converter, ITypedMessagePublisher <TOutput> publisher) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _converter = converter ?? throw new ArgumentNullException(nameof(converter)); _publisher = publisher ?? throw new ArgumentNullException(nameof(publisher)); _messageProcessing = metrics?.CreateSummary("message_processing", "Message processing duration in ms"); }