I work on a SaaS system which is generally a single-tenant environment. Customers (whom the SaaS instances are for) would like a way to subscribe to events, such as updates of certain data entities. For the most part, it seems like a general Pub/Sub architecture, where our system publishes the message, and the customer would subscribe to those events. They might subscribe multiple times to the same events for different integrations.
Is RabbitMQ a suitable solution to service those needs? It is certainly technically possible, but is it the right approach? Whilst it isn't "public facing" in the traditional sense, it's also not strictly "internal" service-to-service communication.
My understanding is that the customer would need a queue per consumer, and we would probably use a Topic exchange so that we could have custom routing, in case we want to some granular control over what gets into each queue.
We also envisage we will use the same RabbitMQ instance for internal needs, such as where we want to hand-off work to another service, or trigger a process whenever a specific event is triggered.
I've struggled to get a sense of this, based on the various articles I've read, as they primarily focus on the technical aspect, and not from the perspective of SaaS serving a customer. Perhaps because it isn't the right approach - my main concern!