Skip to content

KAFKA-20630: Add documentation for topology description plugin feature#22776

Open
aliehsaeedii wants to merge 4 commits into
apache:trunkfrom
aliehsaeedii:KAFKA-20630-topology-description-plugin-docs
Open

KAFKA-20630: Add documentation for topology description plugin feature#22776
aliehsaeedii wants to merge 4 commits into
apache:trunkfrom
aliehsaeedii:KAFKA-20630-topology-description-plugin-docs

Conversation

@aliehsaeedii

Copy link
Copy Markdown
Contributor

Documents the streams group topology description plugin (KIP-1331); docs subtask of KAFKA-20618.

Changes

  • New page docs/streams/developer-guide/topology-description-plugin.md: feature overview, the push/describe cycle (heartbeat solicitation via TopologyDescriptionRequired, the StreamsGroupTopologyDescriptionUpdate RPC, permanent vs. transient plugin failures and the per-group back-off, describe via StreamsGroupDescribe v1), broker and client configuration, plugin implementation guidelines, Admin API and CLI usage, TopologyDescriptionStatus interpretation, GROUP_DELETION_FAILED semantics, and troubleshooting.
  • config-streams.md: add topology.description.push.enabled to the config table and the detailed entries.
  • kafka-streams-group-sh.md: document --topology output format, broker requirements (4.4+, plugin configured), and the tool's error messages / exit-code behavior.
  • streams-rebalance-protocol.md: list the feature as supported, add group.streams.topology.description.plugin.class to the broker-config list, and link the new page from the administration section.
  • getting-started/upgrade.md: notable-changes entry for 4.4.0 covering the new RPC, the StreamsGroupDescribe/StreamsGroupHeartbeat v1 bumps, DeleteGroups v3 with per-group ErrorMessage, the new error codes GROUP_DELETION_FAILED (134) and STREAMS_TOPOLOGY_DESCRIPTION_UPDATE_FAILED (135), and the new broker/client configs.
  • streams/upgrade-guide.md: 4.4.0 entry from the application perspective.
  • operations/basic-kafka-operations.md: point streams-group management at kafka-streams-groups.sh, including --topology.
  • scala-migration.md: weight bump only (16 → 17) to make room for the new page in the developer-guide ordering.

All described behavior was verified against the implementation (StreamsGroupTopologyDescriptionPlugin SPI, StreamsGroupTopologyDescriptionManager, StreamsGroupCommand, the message JSON schemas, and the config definitions).

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

🤖 Generated with Claude Code

Documents the streams group topology description plugin (KIP-1331):

- New developer-guide page (topology-description-plugin.md) covering the
  feature overview, the push/describe cycle, broker and client
  configuration, plugin implementation guidelines, the Admin API and CLI
  surface, TopologyDescriptionStatus interpretation, GROUP_DELETION_FAILED
  semantics, and troubleshooting.
- config-streams.md: add topology.description.push.enabled to the config
  table and detailed entries.
- kafka-streams-group-sh.md: document --topology output format, broker
  requirements, and error messages.
- streams-rebalance-protocol.md: list the feature as supported, add the
  new broker config, and link the new page from the administration
  section.
- getting-started/upgrade.md: notable-changes entry for 4.4.0 covering
  the new RPC, RPC version bumps (StreamsGroupDescribe/Heartbeat v1,
  DeleteGroups v3), new error codes, and new configs.
- streams/upgrade-guide.md: 4.4.0 entry from the application perspective.
- operations/basic-kafka-operations.md: point streams-group management at
  kafka-streams-groups.sh including --topology.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot added triage PRs from the community docs labels Jul 7, 2026
aliehsaeedii and others added 3 commits July 7, 2026 16:25
- basic-kafka-operations.md: split the nested parenthetical into its own
  clause so the GroupCommand intro reads cleanly.
- topology-description-plugin.md: name the fully qualified admin class
  org.apache.kafka.clients.admin.StreamsGroupTopologyDescription and note
  it differs from the plugin-side type of the same name.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tail

- Overview: note that pushing a topology description requires only READ on
  the group resource (like an offset commit) and describing requires
  DESCRIBE; unauthorized requests fail with GROUP_AUTHORIZATION_FAILED.
- Add a Monitoring section listing the streams-group-topology-description-*
  group-coordinator metrics, and add the corresponding metric rows to
  operations/monitoring.md.
- Troubleshooting: a deleted group fails the push with GROUP_ID_NOT_FOUND;
  UNKNOWN_MEMBER_ID means the member was fenced, and the heartbeat (not the
  push failure itself) drives the rejoin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…_STORED

- push/describe cycle: the broker also rejects a push whose topology epoch
  does not match the group's current epoch (INVALID_REQUEST), not just
  unknown members
- NOT_STORED status: add the epoch-mismatch case — after a topology change
  the status stays NOT_STORED until a client pushes for the new epoch
- link the NOT_STORED forward reference in the broker-config section to the
  status-interpretation section
- reword the intro so "returns" cannot be misread as "returns to the group
  coordinator"

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-approved triage PRs from the community

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants