Multi-tenant with tenant connection string in master database

We’re about to migrate a multi-tenant system to NServiceBus. Currently all the tenant connection strings are stored in a global database. As a consequence we would need to connect to the global database to get the connection string for that tenant in the MultiTenantConnectionBuilder delegate. As described here Multi-tenant support • Sql Persistence • Particular Docs

Now I can imagine this will have a significant performance penalty because of that connection to the database. And we also have to do IO in a sync call which is not ideal.

Moving the tenant connection strings out of that database is not something we can do right now, hopefully later.

Now, I’m thinking to create a dictionary outside and use it as a cache in the MultiTenantConnectionBuilder to only get each tenant connection string from the database once.

Do you consider this a good idea? Are there other approaches I’m missing?


As long as that information is fairly static (and I can’t imagine how it wouldn’t be) I don’t see any problem with that.