jolshan commented on code in PR #19931:
URL: https://github.com/apache/kafka/pull/19931#discussion_r2135998371


##########
docs/design.html:
##########
@@ -340,6 +340,18 @@ <h3 class="anchor-heading"><a id="usingtransactions" 
class="anchor-link"></a><a
     transactions. However, in the event of a transaction abort, the 
application's state and in particular the current position of the consumer must 
be reset explicitly so that it can
     reprocess the records processed by the aborted transaction.
     <p>
+    The error handling for transactional producer has been standardized which 
ensures consistent behavior and clearer error handling patterns. The exception 
categories are now more precisely defined:
+    <ol>
+        <li><strong>RetriableException</strong>: Temporary exceptions that are 
retried automatically by the client. These are handled internally and don't 
require application intervention.</li>
+        <li><strong>RefreshRetriableException</strong>: Exceptions requiring 
metadata refresh before retry. These are also handled automatically by the 
client after refreshing metadata.</li>
+        <li><strong>AbortableException</strong>: Exceptions that require 
transaction abort and reprocessing. The application must handle these by 
aborting the transaction and resetting the consumer position.</li>
+        <li><strong>ApplicationRecoverableException</strong>: Exceptions that 
require application handling and producer restart. The application must 
implement its own recovery strategy.</li>

Review Comment:
   Can we also include that the producer must be restarted as part of that 
recovery?



##########
docs/design.html:
##########
@@ -340,6 +340,18 @@ <h3 class="anchor-heading"><a id="usingtransactions" 
class="anchor-link"></a><a
     transactions. However, in the event of a transaction abort, the 
application's state and in particular the current position of the consumer must 
be reset explicitly so that it can
     reprocess the records processed by the aborted transaction.
     <p>
+    The error handling for transactional producer has been standardized which 
ensures consistent behavior and clearer error handling patterns. The exception 
categories are now more precisely defined:
+    <ol>
+        <li><strong>RetriableException</strong>: Temporary exceptions that are 
retried automatically by the client. These are handled internally and don't 
require application intervention.</li>
+        <li><strong>RefreshRetriableException</strong>: Exceptions requiring 
metadata refresh before retry. These are also handled automatically by the 
client after refreshing metadata.</li>
+        <li><strong>AbortableException</strong>: Exceptions that require 
transaction abort and reprocessing. The application must handle these by 
aborting the transaction and resetting the consumer position.</li>
+        <li><strong>ApplicationRecoverableException</strong>: Exceptions that 
require application handling and producer restart. The application must 
implement its own recovery strategy.</li>

Review Comment:
   Can we also include that the producer must be restarted as part of that 
recovery?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to