We have no formal requirements at this point, other than general data safety (in EU so GDPR applies). We’re just trying to get our hosting as efficient as possible, and moving smaller customers to a clustered environment, where we can’t justify three separate VM’s per per tenant.
From a developer perspective I think passing some kind of tenant/‘database’ identifier to the connection builder would be the easiest solution. As transparent as possible basically. (We also have existing systems running on-prem, and to avoid datamigration I’ve made a bit of hack to turn multi tenancy on and off). Most relational and document db’s have some notion of separate databases, so probably coloured by 20 years of working with those terms, there could be better solutions I’m not aware of.
We’re trying to go live in a few months, so unless you had something ready for release in a few weeks, I’ll stick with my homegrown solution for now, but I’m happy to continue the discussion. We’re not cloud scale so I guess our priorities would be different from those who are…