---
title: "Flow control and the Kafka client"
url: "https://axoflow.com/docs/axosyslog-core/4.28/chapter-destinations/configuring-destinations-kafka-c/destination-kafka-c-flowcontrol/"
last_modified: "2026-08-02T11:39:11+02:00"
---

> For the complete documentation index, see [llms.txt](https://axoflow.com/docs/axosyslog-core/4.28/llms.txt).

# Flow control and the Kafka client

A AxoSyslog destination recognizes a message as sent when the message has been sent to the Kafka client, not when the Kafka server confirms its delivery.

If the Kafka client collects too many unsent messages, it will not accept any more messages from AxoSyslog. The AxoSyslog application detects this and stops sending messages to the Kafka client. Also, AxoSyslog’s flow control starts functioning in the direction of the sources (for example, AxoSyslog will not read from the sources in that specific logpath).

You can specify a “high water mark” limit for the Kafka client with the `queue.buffering.max.messages` librdkafka property, which you can set in the [`config()`](https://axoflow.com/docs/axosyslog-core/4.28/chapter-destinations/configuring-destinations-kafka-c/reference-destination-kafka-c/index.md#config) option.

For more information about how the `kafka-c()` destination works with AxoSyslog, click [here](https://axoflow.com/docs/axosyslog-core/4.28/chapter-destinations/configuring-destinations-kafka-c/index.md#how-it-works).

Last modified August 2, 2026: [Adds required modules/packages to install and destination pages (553d6d9b)](https://github.com/axoflow/axosyslog-core-docs/commit/553d6d9be9a0e3ef444e62cc5351dd2ac764f01d)
