public DefaultToposProducer(IMessageSerializer messageSerializer, IProducerImplementation producerImplementation, ILoggerFactory loggerFactory)
 {
     if (loggerFactory == null)
     {
         throw new ArgumentNullException(nameof(loggerFactory));
     }
     _logger                 = loggerFactory.GetLogger(typeof(DefaultToposProducer));
     _messageSerializer      = messageSerializer ?? throw new ArgumentNullException(nameof(messageSerializer));
     _producerImplementation = producerImplementation ?? throw new ArgumentNullException(nameof(producerImplementation));
 }