redpanda-data / redpanda-data/connect

AMQP_1 Output: No Support for AMQP Message Properties (e.g., group-id for Azure Service Bus SessionId)

Open
#3,781 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ux
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.