diff --git a/docs/upgrade.html b/docs/upgrade.html
index 65387d62818..b7bf70f65b8 100644
--- a/docs/upgrade.html
+++ b/docs/upgrade.html
@@ -371,6 +371,14 @@
timestamp of more than 1 hour in the future will be rejected when message.timestamp.type=CreateTime is set.
See KIP-1030
+
Introduced in KIP-890, the TransactionAbortableException
enhances error handling within transactional operations by clearly indicating scenarios where transactions should be aborted due to errors. It is important for applications to properly manage both TimeoutException
and TransactionAbortableException
when working with transaction producers.
+
+ - TimeoutException: This exception indicates that a transactional operation has timed out. Given the risk of message duplication that can arise from retrying operations after a timeout (potentially violating exactly-once semantics), applications should treat timeouts as reasons to abort the ongoing transaction.
+ - TransactionAbortableException: Specifically introduced to signal errors that should lead to transaction abortion, ensuring this exception is properly handled is critical for maintaining the integrity of transactional processing.
+ - To ensure seamless operation and compatibility with future Kafka versions, developers are encouraged to update their error-handling logic to treat both exceptions as triggers for aborting transactions. This approach is pivotal for preserving exactly-once semantics.
+ - See KIP-890 and
+ KIP-1050 for more details
+