From fe4b5e4d65c0b003c2fe352593f582d3e0d1f5a2 Mon Sep 17 00:00:00 2001 From: Terry Burton Date: Thu, 3 Apr 2025 00:53:17 +0100 Subject: [PATCH] Comment regarding impossibility of a/synchronous delivery per topic --- src/modules/rlm_kafka/rlm_kafka.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/modules/rlm_kafka/rlm_kafka.c b/src/modules/rlm_kafka/rlm_kafka.c index 76737d0263..8c1b1c5a5a 100644 --- a/src/modules/rlm_kafka/rlm_kafka.c +++ b/src/modules/rlm_kafka/rlm_kafka.c @@ -103,6 +103,19 @@ static const CONF_PARSER stats_config[] = { CONF_PARSER_TERMINATOR }; +/* + * It would be nice to have a/synchronous delivery be a property set for each + * topic, but unfortunately this is not possible. + * + * High-throughput asynchronous requires a sufficiently large linger.ms to + * ensure batched message delivery. + * + * Synchronous delivery requires linger.ms = 0 to avoid unnecessary delays. + * + * However, linger.ms is a global property, and rd_kafka_flush() purges the + * queue of all topics. + * + */ static const CONF_PARSER module_config[] = { { "bootstrap-servers", FR_CONF_OFFSET(PW_TYPE_STRING | PW_TYPE_REQUIRED, rlm_kafka_t, bootstrap), NULL }, { "topic", FR_CONF_OFFSET(PW_TYPE_STRING | PW_TYPE_REQUIRED, rlm_kafka_t, topic), NULL }, -- 2.47.2