Azure / Azure/azure-sdk-for-rust
[AMQP] No support for AMQP transactional state
- Dominant language
- Rust
- Stars
- 884
- Forks
- 365
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 109
Description
## Summary
`azure_core_amqp` has no transaction support. There is no way to declare a transaction, to discharge it, or to attach a transactional delivery state to a transfer or a disposition.
## Motivation
Service Bus supports transactions over the AMQP transaction coordinator, and `ServiceBusClientOptions.EnableCrossEntityTransactions` turns on cross entity transactions in .NET. The `com.microsoft:update-disposition` operation also documents transaction support. None of this is reachable from Rust.
This blocks only the transaction feature. It does not block any other milestone.
## Proposal
- Add a transaction coordinator link with `declare` and `discharge`.
- Allow a transactional delivery state on transfers and on dispositions.
- Keep the surface minimal, because the only current consumer is Service Bus.
Sub-issue of #4934.
Contributor guide
Research direction
Start by tracing the azure_core_amqp APIs for transaction coordinators, transfers, and dispositions, then compare their existing AMQP link and delivery-state abstractions with the Service Bus transaction requirements described here. Done means a minimal coordinator interface supports declare and discharge, and transactional delivery state can be represented on transfers and dispositions; add focused coverage for those behaviors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100