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");
 }