-
Notifications
You must be signed in to change notification settings - Fork 22
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
TransactionalFlow and TransactionalSink support #86
TransactionalFlow and TransactionalSink support #86
Conversation
/* scala code: | ||
producer.sendOffsetsToTransaction(offsetMap.asJava, group) | ||
producer.commitTransaction() | ||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is an example of missing lines, that should be replaced to close #85 . Few more places like this in methods below.
/// emits a <see cref="TransactionalMessage{K,V}"/>. The flow requires a unique `transactional.id` across all app | ||
/// instances. The flow will override producer properties to enable Kafka exactly-once transactional support. | ||
/// </summary> | ||
[InternalApi] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Marked this as InternalApi to avoid public usage, because it is not working due to #85. And same for TransactionalSink
method below.
@IgorFedchenko more conflicts here |
Oh yea, lots of them... Resolved now. |
As a part of issue #36, transactional producer methods are implemented.
They should work in pair with
KafkaConsumer.TransactionalSource
for exactly once delivery guarantee.Unfortunately, due to Confluent's driver issue there are missing few important lines in implementation (they are marked with
TODO
labels). Without them, implementation does not work correctly and tests fail.With that said, the implementation by itself is finished, and once the transactional support in Confluent driver will be finished we can quickly adopt it. I created issue for that: #85
For now, I am skipping failing test to let CI checks pass.
P.S. This PR is based on #83 and #84 PRs, so better to merge them first.