Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Currently, due to BasicTransactionSemantics, there is a ThreadLocal which holds a txn hostage, allowing for only one transaction per thread. This is extremely limiting for situations where you want to have overlapping windows of transactions, for example take for some time and stream the events somewhere, then wait for acknowledgments while you start a new txn and continue streaming events in a new txn "window" instead of blocking.
In my opinion BasicTransactionSemantics is deeply flawed and we should provide an alternative API on existing channels that exposes the raw transactions and trusts components to use them correctly, while maintaining backward compatibility.