Premium Messaging: High Performance Without Partitions

When Premium Messaging became generally available almost two years ago, by default when creating entities for your namespaces you got two partitions. This was a relatively new concept for some Service Bus customers that were used to one partition. Our reasoning at the time was to improve availability for a nascent service. Well the team has come a long way in two years to improve the performance and availability of Premium so much so that we no longer enable partitions by default, in fact we have disabled the ability to use partitions in new Premium instances. Partitions are no longer needed for availability and performance reasons for Premium Messaging, but don't worry if you continue to use existing partitioned entities with your Premium namespaces that is totally okay and won't change.

To summarize some important aspects of this:

  • Existing entities with partitions in Premium will not be changed, they will remain the same
  • New entities that are created with SDKs, CLI, PowerShell, ARM, Azure portal will be non-partitioned entities by default (without the ability to enable partitions)
  • There is no decrease in availability due to one partition, it will be just as good as partitioned entities
  • DO NOT set enable partition with ARM templates, by default Service Bus will not allow this
  • For Service Bus Standard Messaging customers we still encourage partitioning your entities

Additional Benefits

  • A big benefit is that you no longer have to set partition keys for features like sessions, transactions, send via, and duplicate detection
  • If you use SignalR with Service Bus as the backbone it will now work seamlessly with Premium Messaging as SignalR only supports non-partition entities

Happy Messaging!