I'm designing a platform that will rely on quite a few microservices raising events and commands using azure service bus, these services will be isolated into multiple bounded domains, where each domain might have at least one API and one queue listener. Something around 50+ services types and each with at least 3 replicas. On peak time we expect to have 2k to 5k messages per second for all services combined.
The current design expect each domain to have it's own namespace for security isolation, performance and scalability.
I was looking for a way to use autoforwarding to decouple message senders from receivers when events are raised on different namespaces, but couldn't find any approach that support this. Using separate namespaces the only solution is subscribe on topics into different namespaces, going against the point of having namespace isolation per domain. The other issue is this approach we need to share a single access policy with multiple topic subscribers, because of the 12 rules limit.
I've also been looking for the limits regarding the performance and number of messages a namespace can support, but couldn't find anything useful.
My questions are:
other than connection limits, is there a limit in the number of messages I can send to a single namespaces?
does using a single namespace have any impact in the performance compared to multiple namespaces?
is there any downside in using a single namespace that are not clearly documented in this page?
⚠Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
@guibirow I have assigned the issue to the content author to evaluate and update as appropriate.
Thanks for raising this issue.
We do plan to support cross namespace forwarding in the future , but don't have an ETA for now.
For the other questions you mentioned.
Hope this helps.
Can you explain what "credit based throttling" means.
I haven't seen this documented anywhere.
So, In summary, a single standard namespace performance will be lower than multiple namespaces, Am I correct?
Here is the documentation on throttling.
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-throttling
Yes, your summary is right but it depends on resources allocated to Premium namespace and what your throughput requirements are.