Status
Current state: "Under Discussion"
Discussion thread: TODO
JIRA:
Released: target 2.6
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Motivation
Today, Kafka Streams relies on its internal clients to handle timeout exceptions and retries. However, this approach has many disadvantages. It's harder for users to configure and reason and if an client retries internally, all other tasks it processes are blocked. Furthermore, for some calls that may throw a TimeoutException the client might not retry internally at all.
Thus, we propose to catch all TimeoutException in Kafka Streams and handle them more gracefully and more robust.
Public Interfaces
There is no public interface change, because Kafka Streams already has `retires` configuration parameter. However, `retries` is currently only used by the "global thread". This KIP proposes to reuse the existing config to also handle and retry `TimeoutException`, hence, it is a semantic change.
Proposed Changes
TODO
Compatibility, Deprecation, and Migration Plan
- TODO
Test Plan
TODO
Rejected Alternatives
TODO