Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KAFKA-18026: KIP-1112, document new config and update the Streams upgrade guide #17906

Open
wants to merge 2 commits into
base: trunk
Choose a base branch
from

Conversation

ableegoldman
Copy link
Contributor

This PR covers all the docs for KIP-1112, including the new config and a note about the new APIs in the 4.0 section of the upgrade guide.

This also fixes/updates some unrelated parts of the upgrade guide that were out-of-date, such as the broker compatibility matrix

@github-actions github-actions bot added docs small Small PRs labels Nov 22, 2024
</tr>
<tr>
<td>2.2.1 and<br>2.3.x and<br>2.4.x and<br>2.5.x and<br>2.6.x and<br>2.7.x and<br>2.8.x and<br>3.0.x and<br>3.1.x and<br>3.2.x and<br>3.3.x and<br>3.4.x and<br>3.5.x and<br>3.6.x and<br>3.7.x</td>
<td>2.2.1 and<br>2.3.x and<br>2.4.x and<br>2.5.x and<br>2.6.x and<br>2.7.x and<br>2.8.x and<br>3.0.x and<br>3.1.x and<br>3.2.x and<br>3.3.x and<br>3.4.x and<br>3.5.x and<br>3.6.x and<br>3.7.x and<br>3.8.x and<br>3.9.x</td>
<td></td>
<td></td>
<td>compatible; requires message format 0.11 or higher;<br>enabling exactly-once v2 requires 2.4.x or higher</td>
Copy link
Contributor Author

@ableegoldman ableegoldman Nov 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjsax is this right? I always thought eosv2 needed brokers to be 2.5 or higher, not 2.4. Am I misremembering this or is the matrix wrong?

This error message could also be wrong I suppose but this log in StreamThread at least seems to agree it's 2.5:

log.error("Shutting down because the Kafka cluster seems to be on a too old version. " +
                              "Setting {}=\"{}\" requires broker version 2.5 or higher.",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok according to the KafkaProducer javadocs for #sendOffsetsToTransaction it's 2.5 so I think that's right. I'll fix it here but it might be good to go back and fix this for the previous javadocs

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, EOSv2 does require 2.5 brokers.

</tr>
<tr>
<td>0.10.0.x</td>
<td>compatible</td>
<td>compatible</td>
<td>compatible</td>
<td>compatible</td>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ijuma just to confirm my reading of KIP-896, the change only affects older clients compatibility with newer brokers, not the other way around, right? In other words a 0.11 client could still run against a 4.0 broker?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In other words a 0.11 client could still run against a 4.0 broker?

I don't think so. According to KIP-896:

Users relying on clients not included in this document will have to ensure they are using a version that does not rely on protocol API versions that are being removed as part of this proposal.

This means that broker version 4.x can only communicate with clients version 2.1 and above.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct @chia7712. This raises the minimum version for everything to 2.1.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for confirming -- glad I checked 🙂

@chia7712
Copy link
Contributor

Screenshot From 2024-11-24 16-19-21

@ableegoldman Could you please take a look at the screenshot above? It seems we are missing some cells in the table.

@cadonna
Copy link
Contributor

cadonna commented Nov 25, 2024

@ableegoldman, I merged an update to the compatibility matrix with the missing 3.8.x and 3.9.x entries.

#17937

I did that to conclude all release steps for 3.9 for Streams. Sorry, if that created the inconvenience to rebase your PR with conflicts.

@ableegoldman
Copy link
Contributor Author

dammit Bruno 😠

(@cadonna just kidding, no worries)

@ableegoldman
Copy link
Contributor Author

@ableegoldman Could you please take a look at the screenshot above? It seems we are missing some cells in the table.

@chia7712 do you mean that some cells are literally non-existent, or are you referring to the ones that are just empty? I'll assume it's the latter, because I was confused about the empty cells at first too when I was working on this, but I realized they are intentional. If it doesn't explicitly say "compatible" (ie is empty), then it's not compatible.

Personally I think just writing "incompatible" for these cells would convey the information much better. I can include that in this PR if others agree /cc @cadonna @mjsax

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs small Small PRs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants