Dynamic multi-tenancy
To enhance tenant management in the Information Router (IR), a dynamic tenant discovery mechanism integrated with Macma is introduced. This allows IR to dynamically retrieve tenant lists and contracts, and auto-update configurations without restarts.
Key features
-
Dynamic Configuration Management: Add, update, and remove tenant configurations at runtime without service redeployment.
-
Dynamic Broker Configurations: Manage broker settings dynamically, allowing unique configurations for each tenant.
-
Limitations: All tenants use a shared broker specified during deployment, with uniform service configurations for Kafka, MQTT, and AMQP.
Configuration requirements
The TenantConfig section in the appsettings.json file specifies only the Tenant0 for the Information Router (IR). Tenant0 will be handled differently. If multi-tenancy is not supported, the subscribers and publishers will be configured only for Tenant0.
image::Tenant0.png[height=250]
To support dynamic multi-tenancy when communication between southside machines and the Information Router (IR) is done through brokers (MQTT, RabbitMQ, Kafka), it is crucial that the SubQueue and PubQueue for all ingress channels include a placeholder for {TenantId} or follow a pattern-based implementation. Without this, multi-tenancy cannot be supported.
image::PubSubQueues.png[height=250]