redpanda-data / redpanda-data/connect
AMQP_1 Output: No Support for AMQP Message Properties (e.g., group-id for Azure Service Bus SessionId)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 8.8k
- Forks
- 969
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 64
Description
The amqp_1 output currently supports:
- AMQP ApplicationProperties (application_properties_map)
- AMQP MessageAnnotations (meta)
…but it does not support the AMQP Properties section (AMQP 1.0 §3.2.4), which includes:
- group-id (required for Azure Service Bus SessionId)
- message-id
- subject
- correlation-id
- etc.
Possibly relevant file:
internal/impl/amqp1/output.go
Specifically the Write() method that constructs the AMQP message.
Values set via meta always become MessageAnnotations:
m.Annotations[k] = v
All values assigned via application_properties_map become ApplicationProperties:
m.ApplicationProperties = applicationProperties
There is no code populating the AMQP Properties frame:
m.Properties = &amqp.MessageProperties{ ... }
..except for optional To.
Because of this, it's currently impossible to set: Properties.group-id = "<SessionId>"
which Azure Service Bus requires for session-enabled queues or topics. Messages without this field are rejected with:
The SessionId was not set on the message
Requested Feature: Support for setting AMQP Message Properties, for example:
amqp_properties:
group-id: "session-123"
message-id: "my-id"
subject: "event"
or allow them through meta:
meta "amqp_properties.group-id" = "session-123"
This would make the AMQP_1 output fully AMQP-compliant and enable interoperability with Azure Service Bus and other brokers requiring AMQP Properties.
Thanks
It would be awesome to have support for this - it makes the AMQP_1 output a lot more flexible.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in internal/impl/amqp1/output.go, focusing on Write() and the existing AMQP message construction, including the optional To property. Review how application_properties_map and meta are mapped, then determine how the requested AMQP Properties values should enter the configuration. Done means group-id and the other requested properties can be set on outgoing messages for brokers such as Azure Service Bus.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100