arcus-azure/arcus.messaging

Make MessagePump configuration more developer friendly

Closed this issue · 1 comments

This is somewhat related to #404.

When registering a MessagePump, we have the option to configure some settings.
One of the things that we can specify, is the OperationName (see related issue).

However, when a developer wants to configure the operation-name, the developer needs to know that he / she needs to cast the IAzureServiceBusTopicMessagePumpOptions interface to the AzureServiceBusMessagePumpOptions type before having access to the Telemetry property where you can find the OperationName setting.
That's a long way to travel before finding what you need when you scroll through the list of properties that is offered by Intellisense.

Moreover, the most important thing is that you need to cast to AzureServiceBusMessagePumpOptions before we can event find / access that property
(See how this is done in the test: https://github.com/stijnmoreels/arcus.messaging/blob/66c91b3525880e9328bc054676638a3898d8d84e/src/Arcus.Messaging.Tests.Integration/MessagePump/ServiceBusMessagePumpTests.cs#L818C1-L818C107)

Isn't it possible to promote the Telemetry property to the IAzureSErviceBusTopicMessagePumpOptions interface ? That would be already one hurdle (the most important one imho) that is being tackled.

Or, isn't it possible to change the type of the configureMessagePump argument in the AddServiceBusTopicMessagePumpxxx methods to an Action<AzureServiceBusMessagePumpOptions> instead of it now being an Action<IAzureServiceBusTopicMessagePumpOptions>

Yes, of course, but that was a breaking change in the past, that's why it wasn't promoted to the interface. I believe, if we have a list of all things needed, we can promote them in one go.