I have been using Azure Service Bus Topics in a production application. My understanding is the system guarantees at least one copy of the message on the subscription end when published.
In practice, I generally see 1 message corresponding to a publish. In some degenerate cases though I see multiples. For example: 1 publish that corresponds to ~20 messages in the relevant subscription. Currently nothing is consuming this subscription, which leads me to believe this is the publishing logic.
Under what circumstances are messages duplicated rampantly? I would imagine networking disturbances might cause this. What else?
Note that the default duplicate handling logic can't handle this. You would have multiple messages with the same body and distinct message IDs - which I understand is used to establish message "identity".
EDIT: My publishing logic is pretty uncomplicated and resembles the following:
public void PublishSomeId(Guid someId, int eventDelayInMinutes, string componentName)
{
var topicClient = ServiceBusManager.GetTopicClient();
var message = new BrokeredMessage(someId);
message.To = componentName;
message.ScheduledEnqueueTimeUtc = DateTime.UtcNow.AddMinutes(eventDelayInMinutes);
topicClient.Send(message);
}