Dear Pulsar Community, I am excited to invite you all to participate in the discussion of the latest Pulsar proposal [1] for a transaction key mechanism. This proposal aims to provide users with a way to ensure that only one active transaction is associated with a given transaction key, while also aborting previous transactions and preventing them from performing further operations. This will help create a clean working environment for newly started transactions and prevent issues such as duplicate message processing.
The proposal includes a detailed design that utilizes the concept of transaction keys and epochs, and introduces a new system topic for storing epoch information. Additionally, a new configuration option will be added to the PulsarClient builder to set the transaction key, and a new exception called ExpiredTransactionException will be introduced to handle cases where an expired transaction is used for operations. We believe that this proposal will greatly improve the user experience for Pulsar transactions, and we encourage everyone to share their thoughts and feedback. Your input is valuable in shaping the future of Pulsar, and we look forward to hearing from you. Please feel free to join the discussion by commenting on the proposal document, or by starting a thread in the Pulsar mailing list. Let's work together to make Pulsar better than ever before! Best regards, Xiangying [1] https://docs.google.com/document/d/17V1HaHxtd1DpGkfeJb_uKPBm_u97RAWsojeKmCw6J8U/edit#