Azure / Azure/azure-sdk-for-rust

[AMQP] No support for AMQP transactional state

Open
#4,937 1 comment 1 reaction 0 assignees View on GitHub
Azure.Core Client
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.