|
|
|
|
|
by fullstackchris
1256 days ago
|
|
As an alternative, if you containerize everything in the stack, you can simply spool up another seperate and isolated stack of containers for each given customer. Then it's also trivial if they want it 'on premise' somewhere or 'in the cloud'. No need to try and add complexity at the schema level and make a monolith support multiple tenants. Also, this list is quite literally supabase (https://supabase.com/) - I cannot recommend enough, especially if OP is solo, which it sounds like is the case. |
|
There are levels of multi-tenancy:
* logical multi-tenancy, where isolation is enforced in code and the database (every table has a 'tenant id' key)
* container level multi-tenancy, where you run separate containers and possibly in different namespaces
* virtual machine multi-tenancy, where there are different VMs for each tenant and you can use network isolation as well (NACLs, security groups)
* hardware isolation, similar to virtual machine, but you use separate hardware. Hard to scale this with software, though using something like Equinix metal might work: https://www.equinix.com/products/digital-infrastructure-serv...
These each have different tradeoffs in upgradeability, operations cost and isolation.