wzhramc opened a new pull request, #24703:
URL: https://github.com/apache/pulsar/pull/24703
### Motivation
This PIP proposes extending Pulsar Functions with configuration-based
automatic transaction support to enable exactly-once processing semantics.
Currently, Pulsar
Functions cannot publish to multiple topics transactionally, which is a
significant limitation for use cases requiring atomic multi-topic operations.
### Modifications
The implementation will allow functions to atomically process input
messages and publish to multiple output topics within a single transaction
without requiring code
changes to the function implementation. This will be achieved through:
- Adding transaction configuration options to FunctionConfig
- Modifying JavaInstanceRunnable to support auto-transactions
- Enhancing ContextImpl to track and use transactions
- Adding metrics for monitoring transaction usage in functions
### Verifying this change
- [ ] Make sure that the change passes the CI checks.
This change will add tests and can be verified through:
- Unit tests for transaction-enabled function execution
- Integration tests for end-to-end transaction processing
### Does this pull request potentially affect one of the following parts:
- [x] The public API
- [x] The metrics
### Documentation
- [ ] `doc-required` <!-- Will update docs after implementation -->
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]