question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Service Bus] ServiceBusMessage to expose all AMQP details

See original GitHub issue

Motivation for this change:

A desire to allow reading and writing of the different parts of an AMQP message as described by the AMQP spec. This gives us the interopability feature when one uses a different client that does support writing to these parts, but then uses our libraries to read the message. See “Message Format” in section 3.2 of the AMQP spec

Guiding factors for the proposal:

  • Existing users used to accessing either AMQP properties like messageId or AMQP message annotations like partitionKey or AMQP message header like deliveryCount should continue to have these as top level entities
  • All inner details of AMQP message should be accessible to the advanced user. Since these do not matter to the most of the user segment, these details need not be at the top level. Therefore, we would like to hide the details (header, footer, message annotations, deliver annotations, properties) in a nested field. This model can be replicated in Event Hubs in the future
  • We do not want to introduce any new AMQP message detail as a top level entity at this moment in time to avoid increasing the surface area and potential confusion due to introduction of new elements. If the service team determines that an AMQP message detail from header/footer/message annotations/delivery annotations deserves to get a spot on the top level, it should be do-able incrementally in a non breaking fashion

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:8 (7 by maintainers)

github_iconTop GitHub Comments

2reactions
bterlsoncommented, Aug 31, 2020

I’m a fan of approach 2, personally. Although, since ReceivedMessage is a subtype of ServiceBusMessage, it would be nice if their names are related similarly. ReceivedServiceBusMessage seems pedantically correct but maybe too long. Open to other suggestions, or keeping the current names if no alternatives are palatable.

2reactions
HarshaNallurucommented, Aug 31, 2020

Isn’t we discussed that there is always one variable/source for a property ‘value’ and that gets changed whether user change at top level or in amqpMessageDetails ? User can change a value at any level and it will update one source.

@hemanttanwar The problem is… we can’t stop a user from constructing a message object with two different "body"s in JS, which is not a problem in Java or .NET.

Read more comments on GitHub >

github_iconTop Results From Across the Web

[Service Bus] ServiceBusMessage to expose all AMQP detail ...
In #10957, we added a new field to hold all the inner AMQP details of the message when it is received. This allows...
Read more >
AMQP 1.0 in Azure Service Bus and Event Hubs protocol guide
Protocol guide to expressions and description of AMQP 1.0 in Azure Service Bus and Event Hubs.
Read more >
Sending Message to Azure Service Bus works locally, but not ...
The following code works to send the message to an Azure Service Bus Queue when I run my service locally. The service is...
Read more >
Azure Service Bus client library for .NET
Use the client library for Azure Service Bus to: Transfer business data: leverage messaging for durable exchange of information, such as sales or...
Read more >
Azure.Messaging.ServiceBus 7.8.0-beta.1 - NuGet
Use the client library for Azure Service Bus to: Transfer business data: leverage messaging for durable exchange of information, such as sales or...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found