admin管理员组

文章数量:1332865

We are using MassTransit with Azure Service Bus in our backend system for messaging. Now, we need to extend our solution to communicate with on-premises agents that will be installed for each of our tenants. These agents should receive messages specifically targeted to them.

Here are our requirements for this setup:

  1. Tenant Isolation: Each agent (representing a tenant) should only have access to messages intended for that tenant (e.g., queue isolation - SAS token?).
  2. Centralized Queue Management: The backend system must handle queue creation and lifecycle management, ensuring that the process is seamless and automated. The agent should only be able to read and write.

Given these requirements, is Azure Service Bus together with MassTransit a suitable choice for implementing the messaging between our backend system and tenant-specific on-prem agents?

If yes, what are the best practices for achieving tenant isolation and managing the queues efficiently? A boilerplate example would be greatly appreciated to help us get started.

If not, what alternative solutions might better fit this scenario?

Elaboration:

We provide a SaaS service hosted in the Azure cloud. To automate specific tasks for our customers, we need to execute actions within their datacenters. This requires a request-response setup, where the cloud solution sends a request to an agent, and the agent responds upon task completion.

Customers install the agent using a installer on their Windows Server machine. During installation, they are prompted to enter a “connection string” (potentially a SAS token) to securely connect to the cloud solution. This process also allows the agent to “announce” itself to the cloud, enabling the cloud solution to recognize and communicate with the new agent.

本文标签: