feat(DOC-2012): document Kafka 4.x client compatibility and KIP-890#1614
Conversation
✅ Deploy Preview for redpanda-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughThis pull request updates the Kafka clients documentation page with clarifications and additions. Changes include: adding trademark notation to "Apache Kafka®", expanding the compatibility note to include Redpanda and Kafka 4.x clients, reworded guidance for unsupported clients, and a new unsupported Kafka feature entry (KIP-890 Transactions Server-Side Defense) with details about per-transaction epoch bumping behavior. Environment-specific authentication guidance is added for both cloud and non-cloud deployments. Additional notes regarding HTTP Proxy limitations, delete.retention.ms behavior, and client quotas are incorporated with conditional visibility based on environment. Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
modules/develop/pages/kafka-clients.adoc (1)
45-45: Consider aligning “unsupported client” with earlier “not validated” terminology.Line 43 says unvalidated clients can still be compatible, while Line 45 asks users to report an “unsupported client.” “Unvalidated client” would read more consistently.
✏️ Suggested wording tweak
-If you find an unsupported client, contact the Redpanda team in the community https://redpanda.com/slack[Slack^]. +If you find an unvalidated client, contact the Redpanda team in the community https://redpanda.com/slack[Slack^].🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/develop/pages/kafka-clients.adoc` at line 45, Replace the phrase "unsupported client" with "unvalidated client" in the sentence "If you find an unsupported client, contact the Redpanda team..." so terminology matches the earlier "not validated" wording; update the copy that currently uses "unsupported client" to read "If you find an unvalidated client, contact the Redpanda team..." to maintain consistency with the phrase used on Line 43.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@modules/develop/pages/kafka-clients.adoc`:
- Line 45: Replace the phrase "unsupported client" with "unvalidated client" in
the sentence "If you find an unsupported client, contact the Redpanda team..."
so terminology matches the earlier "not validated" wording; update the copy that
currently uses "unsupported client" to read "If you find an unvalidated client,
contact the Redpanda team..." to maintain consistency with the phrase used on
Line 43.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ff2ed267-6e9a-4306-8ce8-b1bc9add75f1
📒 Files selected for processing (1)
modules/develop/pages/kafka-clients.adoc
|
Thanks for the quick turnaround @mfernest ! Reminder: be sure to include a preview link to the updated section(s). Thx! |
|
@bashtanov — gentle nudge on this one when you have a chance. Documents Kafka 4.x client compatibility and KIP-890 for DOC-2012. |
| * Quotas per user for bandwidth and API request rates. However, xref:manage:cluster-maintenance/manage-throughput.adoc#client-throughput-limits[quotas per client and per client group] using AlterClientQuotas and DescribeClientQuotas APIs are supported. | ||
| endif::[] | ||
| + | ||
| * https://cwiki.apache.org/confluence/display/KAFKA/KIP-890[KIP-890^] (Transactions Server-Side Defense): Redpanda does not implement the server-side portion of KIP-890. Kafka 4.x clients use per-transaction epoch bumping to protect against erroneous transaction commits, but fall back to the standard transaction protocol when connecting to Redpanda. |
There was a problem hiding this comment.
Would it make sense to describe that the Kafka problem that KIP-890 solves is not present in Redpanda due to Raft's atomicity guarantees?
|
We can call out what we don't support (server side defense), butI dont think we can claim proper 4.x certification. My understanding is @bashtanov only tested Transactions with 4.x. The Aha! card got mistakedly closed. We really need to fix failing tests with Kafka 4.x on a more broad basis before claiming victory. |
All ducktape and chaos tests that use kafka clients now use version 4.1 of it. |
|
Oh wow. @bashtanov is this true across all tests for ALL of these clients: https://docs.redpanda.com/current/develop/kafka-clients/ ? |
|
I guess we should clarify this is the Java client that is now fully certified. will have to check with the enterprise team about other clients. |
What's this? |
- Explicitly state Kafka 4.x clients are compatible with Redpanda - Add KIP-890 (Transactions Server-Side Defense) to unsupported features: Redpanda does not implement the server-side portion; Kafka 4.x clients fall back to the standard transaction protocol when connecting to Redpanda - Add Apache Kafka® trademark on first mention - Remove "currently" from unsupported features intro - Fix "reach out" phrasing and mid-sentence line break Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add page-topic-type, personas, and learning objectives metadata - "Redpanda Data recommends" → direct imperative "Always use..." - "limitations below" → "limitations in the next section" - Fix "See the ... guide for details" → "For details, see xref:..." - "you can file an issue" → imperative construction - Break SCRAM bullet semicolon chain into two sentences - (pandaproxy) → monospace code term - "contact the Redpanda team in the community Slack" → cleaner phrasing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add context that KIP-890 addresses transaction errors specific to Kafka replication, and that Redpanda Raft-based replication is not susceptible to this issue. Addresses bashtanov review comment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Kafka 4.x clients only use per-transaction epoch bumping when the server supports Transactions V2. Since Redpanda doesn't implement V2, clients fall back to the original transaction protocol — epoch bumping doesn't apply in this case. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…P-890 - Scope the 4.x compatibility claim to the Apache Kafka Java client per @mattschumpert's review note; other clients in the validated list have not been broadly re-validated at 4.x. - Replace "unsupported client" with neutral phrasing to resolve the CodeRabbit terminology inconsistency vs the earlier "not validated" paragraph. - Tighten the KIP-890 bullet from five sentences to three; move the epoch-bumping detail into a parenthetical so the bullet doesn't dominate the unsupported-features list visually. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
ba20e86 to
69535fd
Compare
|
Re-opening this thread to close it out. To answer I've narrowed the page's 4.x claim accordingly in commit |
micheleRP
left a comment
There was a problem hiding this comment.
PR Review (docs-team-standards)
What this PR does
Updates the Kafka clients compatibility reference page: narrows the Kafka 4.x compatibility claim to the Apache Kafka Java client (validated via ducktape/chaos suites), adds KIP-890 (Transactions Server-Side Defense) to the unsupported-features list with engineering rationale, and applies style cleanup (trademark on first mention, learning-objectives frontmatter, SCRAM bullet split, monospaced pandaproxy, imperative TIP). Single-sourced into cloud-docs. Audience: developers.
Jira ticket alignment
Ticket: DOC-2012. The PR addresses the intent — documenting Kafka 4.x client compatibility and the KIP-890 gap. Content-complete against the ticket, but blocked by open review feedback (below).
Critical issues (must fix)
- [kafka-clients.adoc:78 — KIP-890 bullet] Disputed technical claim, flagged by an engineer today and unaddressed. The bullet currently says: "Redpanda's Raft-based replication is not susceptible to this class of errors." @bharathv commented: "I would remove 'raft-based replication' part. That has nothing to do with why Redpanda is not susceptible. A simpler rewording would be... 'Redpanda implementation of transactions is not susceptible..'"
- Note the conflict: the Raft framing was added earlier specifically to satisfy @bashtanov's request (to explain it "due to Raft's atomicity guarantees"). Two engineers now disagree on the mechanism. This needs SME resolution before merge — recommend @bharathv and @bashtanov align rather than the docs team picking a side.
- Likely fix (pending agreement): replace "Redpanda's Raft-based replication is not susceptible to this class of errors" with "Redpanda's transaction implementation is not susceptible to this class of errors."
Suggestions (should consider)
- [kafka-clients.adoc:21 — Kafka client compatibility intro] @bashtanov (unaddressed): "I'm not sure I understand what it means. What is 're-validating a client at 4.x'?" The phrase "other clients in the table below have not been broadly re-validated at 4.x" is unclear to a reader who doesn't know what "validated at 4.x" means.
- Current: "...other clients in the table below have not been broadly re-validated at 4.x but remain compatible with the Kafka protocol versions they have always supported."
- Suggested: Clarify what validation means, e.g. "...Redpanda has not specifically tested the other clients in the table against Kafka 4.x, but they remain compatible with the Kafka protocol versions they support." Worth getting @bashtanov's sign-off on the rewording.
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>
Final review — DOC-2012 Kafka 4.x compatibilityThanks for landing the remaining work, @Feediver1. The content is in good shape and the engineering review has been well absorbed. One render issue to fix before merge, plus a few optional items. 🔴 Must fix before merge: learning objectives render as literal text in the Cloud buildThe new learning objectives render correctly on Self-Managed but show literal
Why: This page is single-sourced into cloud-docs via This is isolated to this page — every other single-sourced page that uses learning objectives already follows one of the two conventions below. How to fix (pick one): Option A — define inside the tag (recommended; single source of truth). In // tag::single-source[]
:learning-objective-1: Identify which Kafka clients are validated with Redpanda
:learning-objective-2: Identify unsupported Kafka features when integrating with Redpanda
Redpanda is compatible with Apache Kafka® versions 0.11 and later...This matches Option B — duplicate in the cloud stub. Leave the docs header as-is and add the same attributes to = Kafka Compatibility
:page-aliases: development:kafka-clients.adoc
:description: Kafka clients, version 0.11 or later, are compatible with Redpanda. Validations and exceptions are listed.
:page-topic-type: reference
:personas: developer
:learning-objective-1: Identify which Kafka clients are validated with Redpanda
:learning-objective-2: Identify unsupported Kafka features when integrating with Redpanda
include::streaming:develop:kafka-clients.adoc[tag=single-source]Either way, please confirm the fix on the 🟡 Suggestions (optional)
🟡 Pre-existing, worth a quick check
🗨️ Unresolved review thread
✅ What works well
|
|
Companion cloud-docs PR opened for the Pattern B metadata mirror on the cloud stub: redpanda-data/cloud-docs#606. The two should land together so the new frontmatter (topic-type, personas, learning objectives) shows up consistently on both |
…606) * docs(DOC-2012): mirror Kafka Compatibility frontmatter on cloud stub Companion to redpanda-data/docs#1614. The docs-side page added page-topic-type, personas, and two learning objectives in the frontmatter; the cloud stub at modules/develop/pages/kafka-clients.adoc must duplicate them so the metadata renders consistently on /cloud-data-platform/ (Pattern B per @micheleRP's review). Follows the same pattern as schema-reg-contexts.adoc and manage-throughput.adoc, which carry their own frontmatter even though the body is single-sourced from the streaming component via include::streaming:...[tag=single-source]. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: retrigger Netlify preview after docs#1614 merge The single-sourced body is pulled from the streaming component (docs repo). docs#1614 merged after this PR's last preview built, so rebuild to render the new body (KIP-890 bullet, learning-objective checkboxes) against the mirrored stub frontmatter. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: micheleRP <michele@redpanda.com>
Summary
Resolves DOC-2012.
Documents Kafka 4.x client compatibility on
modules/develop/pages/kafka-clients.adocand adds KIP-890 (Transactions Server-Side Defense) to the unsupported features list with engineering context.This PR was originally opened by
@mfernest, who is no longer with the team.@Feediver1is taking it over to land the remaining work after the 2026-03 review round.What changed
@mattschumpert's review note. Other clients in the validated list have not been broadly re-validated at 4.x and the page no longer claims they have.@bashtanovasked for, and (b) the corrected fallback-vs-V2 wording (epoch bumping only applies to Transactions V2, which Redpanda doesn't implement).page-topic-type: reference,personas: developer, and two learning objectives.pandaproxy, and resolved a CodeRabbit terminology inconsistency between "not validated" and "unsupported client".Review history
@bashtanov@mattschumpert69535fdf). Re-requesting reviewPreview pages
Test plan
xref, and Slack link all resolve🤖 Generated with Claude Code