[AMQP] Add transaction coordinator and transactional state support - #5030
Draft
Raushan Singh (raushan728) wants to merge 7 commits into
Draft
[AMQP] Add transaction coordinator and transactional state support#5030Raushan Singh (raushan728) wants to merge 7 commits into
Raushan Singh (raushan728) wants to merge 7 commits into
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 2 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution Raushan Singh (@raushan728)! We will review the pull request and get back to you soon. |
Raushan Singh (raushan728)
force-pushed
the
feat/4937-amqp-transactional-state
branch
from
August 8, 2026 08:53
264f0a6 to
13e583a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4937
Adds transaction support to azure_core_amqp, behind a
transactionfeature flag. Tier 0 for #4934.A few decisions worth flagging for review:
Used
OwnedTransaction(attaches its own control link per transaction) instead of holding a persistentController— the latter would need a borrowedTransaction<'t>stored in a map, which isn't safe without an unsafe cast. Side benefit: a transaction spanning a reconnect fails cleanly on its own, which the issue asked for.detach()explicitly discharges any remaining transactions instead of just dropping them —OwnedTransactiondoesn't send a real AMQP frame on drop, so relying on that would mean rollback only happens after a broker timeout.Transaction state is shared per-session (
Arc<Mutex<...>>on the session), not global, so separate sessions don't see each other's transactions.CoordinatorIsNotImplementednow maps to its own error kind instead of the generic transport error bucket, so callers can distinguish "broker doesn't support transactions" from other attach failures.Open question: should this target main, or is there a feature branch for the Service Bus GA epic? Let me know and I'll retarget.