0

My application works great right now as an Azure App Service. It uses a Service Bus Queue to push bits of data that are then picked up by clients, "stuff" happens, and then the clients push responses back to my app on another Service Bus Queue. So basically I have one each, inbound queue and outbound queue.

Now I'm trying to expand this application to SaaS. I'd like to maintain the same queue-out, queue-in architecture but with a potentially unlimited number (n) of separate, untrusted client connections. I'd also prefer to avoid investing in the management and the hourly cost of maintaining 2n Service Bus resources!

I'm afraid I don't see a way to enforce that type of secure "filtering" on a Service Bus Queue. Clients can say "give me the next five messages" but they'll be getting everyone's messages, not just their own.

Is there a way to do what I want using Service Bus Queues? Should I be implementing this architecture concept with some different kind of Azure resource? Or am I best off coding a custom API call to implement the "give me my next five messages" idea?

catfood
  • 103
  • 6

1 Answers1

1

I think topics and filtered subscriptions would probably do the trick: https://docs.microsoft.com/en-us/azure/service-bus-messaging/topic-filters

Justice
  • 11
  • 2
  • That looks good, but it looks like the client gets to define the filter condition. And I don't trust the clients _that_ much. – catfood Dec 07 '20 at 01:48
  • Perhaps, define the subscription and filter in your web app server side, then pass the sub address and constrained access auth token to the client. – Justice Dec 07 '20 at 05:17