internal static KafkaFailoverSink Create(KafkaSink kafkaSink, ILogEventSink fallbackSink,
                                          BatchOptions batchOptions, IModeSwitcher modeSwitcher) =>
 batchOptions.QueueLimit.HasValue
         ? new KafkaFailoverSink(kafkaSink, fallbackSink, batchOptions.BatchSizeLimit, batchOptions.Period,
                                 batchOptions.QueueLimit.Value, modeSwitcher)
         : new KafkaFailoverSink(kafkaSink, fallbackSink, batchOptions.BatchSizeLimit, batchOptions.Period,
                                 modeSwitcher);
 private KafkaFailoverSink(KafkaSink kafkaSink, ILogEventSink fallbackSink, int batchSizeLimit, TimeSpan period,
                           int queueLimit, IModeSwitcher modeSwitcher) : base(batchSizeLimit, period, queueLimit)
 {
     _kafkaSink    = kafkaSink;
     _fallbackSink = fallbackSink;
     _switcher     = modeSwitcher;
 }