arcus-azure / arcus.messaging

Messaging with Microsoft Azure in a breeze.
https://messaging.arcus-azure.net
MIT License
20 stars 11 forks source link

Make MessagePump configuration more developer friendly #431

Closed fgheysels closed 8 months ago

fgheysels commented 11 months ago

This is somewhat related to https://github.com/arcus-azure/arcus.messaging/issues/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>

stijnmoreels commented 11 months ago

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.