Closed plameniv closed 5 years ago
Hi @plameniv, thanks for the great report. Based on the options you presented, which one is the best for your use case?
I think from our point of view option 2 (kafkajs would automatically abort the previous transaction and retry the new transaction) would make most sense. I can't think of a scenario where the incomplete transaction could be continued, so automatically aborting and then retrying the new transaction seems to be sensible to me. Curious to hear your thoughts on it, maybe I am missing some use case.
Hi, @sklose @plameniv I took some time to talk with other library developers, and we agree that transactions are short-lived entities and KafkaJS should handle the error, abort the transactions and automatically create a new one, basically option 2.
I think this is the last piece of our 1.5.0
release; I'll get this done and get back to you.
We are in the process of testing out different edge cases for the EOS implementation. One edge case we came across is: what happens if a service crashes before committing/aborting a transaction and it comes back up creating a new transaction before the previous transaction timeout elapsed. We currently see a
CONCURRENT_TRANSACTIONS
error which crashes the service.What would be the best way to handle this scenario:
Reproducer: