This is an automated email from the ASF dual-hosted git repository.
AndrewJSchofield pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new 6784c621e16 KAFKA-20809: Updated getting started docs with share group
DLQ. (#22950)
6784c621e16 is described below
commit 6784c621e16117734d04436f6788cc050c0033f3
Author: Sushant Mahajan <[email protected]>
AuthorDate: Mon Jul 27 17:21:18 2026 +0530
KAFKA-20809: Updated getting started docs with share group DLQ. (#22950)
* Add overview of share group DLQ in `upgrade.md`.
* Update `basic-kafka-operations.md` with a new section on configuring
share groups with DLQ.
Reviewers: Andrew Schofield <[email protected]>
---
docs/getting-started/upgrade.md | 1 +
docs/operations/basic-kafka-operations.md | 44 +++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/docs/getting-started/upgrade.md b/docs/getting-started/upgrade.md
index 4e8a7700190..c504d0c1630 100644
--- a/docs/getting-started/upgrade.md
+++ b/docs/getting-started/upgrade.md
@@ -48,6 +48,7 @@ type: docs
* The `kafka-cluster.sh` tool now provides an `api-versions` command to
display the API versions supported by the brokers or controllers, and it
accepts both `--bootstrap-server` and `--bootstrap-controller`. As a result,
`kafka-broker-api-versions.sh` is deprecated and will be removed in the next
major release; use `kafka-cluster.sh api-versions` instead. For further
details, please refer to
[KIP-1220](https://cwiki.apache.org/confluence/x/-QkbFw).
* Brokers can now record a human-readable description of each streams
group's processing topology via a pluggable backend, retrievable through
`Admin#describeStreamsGroups` and `kafka-streams-groups.sh --describe
--topology`. The feature is disabled unless the new broker configuration
`group.streams.topology.description.plugin.class` is set to a
`StreamsGroupTopologyDescriptionPlugin` implementation; on the client side, the
new Kafka Streams configuration `topology.description.push.ena [...]
* The `kafka-producer-perf-test.sh` tool now supports `--record-key-range`,
`--key-distribution`, and `--random-seed` options to control the distribution
of record keys. Use `--key-distribution range` for sequential key assignment
(round-robin over the key range) or `--key-distribution random` for random key
selection. The `--random-seed` option allows reproducible benchmark runs when
using random key distribution. For further details, please refer to
[KIP-1299](https://cwiki.apache.or [...]
+ * Share groups now support dead-letter queue functionality as outlined in
[KIP-1191](https://cwiki.apache.org/confluence/x/fApJFg). Any records which are
released (beyond max delivery count) or rejected by the share consumer become
eligible for DLQ. Share group DLQ gets enabled when the Kafka feature
`share.version` is upgraded to 2. The user can configure a DLQ topic on a share
group by setting the dynamic config `errors.deadletterqueue.topic.name`
(default `""`) to the name of the DL [...]
## Upgrading to 4.3.0
diff --git a/docs/operations/basic-kafka-operations.md
b/docs/operations/basic-kafka-operations.md
index d5146f7404d..8710c283a20 100644
--- a/docs/operations/basic-kafka-operations.md
+++ b/docs/operations/basic-kafka-operations.md
@@ -350,6 +350,50 @@ $ bin/kafka-share-groups.sh --bootstrap-server
localhost:9092 --delete --group m
Deletion of requested share groups ('my-share-group') was successful.
```
+## Configuring dead-letter queues (DLQ) on share groups
+
+Share group dead-letter queues are enabled if the `share.version` feature at
least 2:
+
+```bash
+$ bin/kafka-features.sh --bootstrap-server localhost:9092 describe | grep
share.version
+Feature: share.version SupportedMinVersion: 0
SupportedMaxVersion: 2 FinalizedVersionLevel: 2
Epoch: 106
+```
+
+Set DLQ topic on share group:
+
+```bash
+$ bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config
"errors.deadletterqueue.topic.name=dlq.gs1dlqtopic" --entity-type groups
--entity-name my-share-group
+Completed updating config for group my-share-group.
+```
+
+To enable share group DLQ topic auto creation (default disabled):
+
+```bash
+$ bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config
"errors.deadletterqueue.auto.create.topics.enable=true" --entity-type brokers
--entity-default
+Completed updating default config for brokers in the cluster.
+```
+
+To set your own Kafka topic as share group DLQ topic, you must set certain
dynamic configs on the DLQ topic post creation. If cluster dynamic config to
auto create share group DLQ topic is enabled
(`errors.deadletterqueue.auto.create.topics.enable=true`), the configs are
attached automatically to the auto created topics.
+
+```bash
+$ bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config
"errors.deadletterqueue.group.enable=true" --entity-type topics --entity-name
dlq.gs1dlqtopic
+Completed updating config for topic dlq.gs1dlqtopic.
+```
+
+To change the default `dlq.` share group DLQ topic prefix, set the dynamic
cluster config `errors.deadletterqueue.topic.name.prefix` to desired value. The
default value is `dlq.`.
+
+```bash
+$ bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config
"errors.deadletterqueue.topic.name.prefix=com.mycompany.dlq." --entity-type
brokers --entity-default
+Completed updating default config for brokers in the cluster.
+```
+
+By default, the records written to the DLQ topic just include metadata about
the source records such as the topic, partition and offset. You can set the
`errors.deadletterqueue.copy.read.enable` configuration for the share group so
the source record key and value are copied to the DLQ topic.
+
+```bash
+$ bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config
"errors.deadletterqueue.copy.record.enable=true" --entity-type groups
--entity-name my-share-group
+Completed updating config for group my-share-group.
+```
+
## Expanding your cluster
Adding servers to a Kafka cluster is easy, just assign them a unique broker id
and start up Kafka on your new servers. However these new servers will not
automatically be assigned any data partitions, so unless partitions are moved
to them they won't be doing any work until new topics are created. So usually
when you add machines to your cluster you will want to migrate some existing
data to these machines.