/// <summary>Publish message</summary>
        public static Task ProduceAsync <T>(this IKafkaProducer producer, T message)
            where T : class
        {
            var definition = TopicDefinition.FromType <T>();
            var key        = definition.GetMessageKey(message);

            return(producer.ProduceAsync(definition.Topic, message, key));
        }
 public static IMessageSubscription Subscribe <T>(
     this IKafkaConsumer consumer,
     Func <IMessage <T>,
           Task> handler)
     where T : class
 => consumer.Subscribe(TopicDefinition.FromType <T>().Topic, handler);