Skip to content

[AMQP] Add transaction coordinator and transactional state support - #5030

Draft
Raushan Singh (raushan728) wants to merge 7 commits into
Azure:mainfrom
raushan728:feat/4937-amqp-transactional-state
Draft

[AMQP] Add transaction coordinator and transactional state support#5030
Raushan Singh (raushan728) wants to merge 7 commits into
Azure:mainfrom
raushan728:feat/4937-amqp-transactional-state

Conversation

@raushan728

@raushan728 Raushan Singh (raushan728) commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Fixes #4937

Adds transaction support to azure_core_amqp, behind a transaction feature 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 persistent Controller — the latter would need a borrowed Transaction<'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 — OwnedTransaction doesn'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.

  • CoordinatorIsNotImplemented now 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.

@azure-pipelines

Copy link
Copy Markdown
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.

@github-actions github-actions Bot added Azure.Core The azure_core crate Community Contribution Community members are working on the issue customer-reported Issues that are reported by GitHub users external to the Azure organization. labels Aug 8, 2026
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown

Thank you for your contribution Raushan Singh (@raushan728)! We will review the pull request and get back to you soon.

@raushan728
Raushan Singh (raushan728) force-pushed the feat/4937-amqp-transactional-state branch from 264f0a6 to 13e583a Compare August 8, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Azure.Core The azure_core crate Community Contribution Community members are working on the issue customer-reported Issues that are reported by GitHub users external to the Azure organization.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[AMQP] No support for AMQP transactional state

1 participant