We are planning to implement a multi tenant application in Azure cloud. I am looking for a best way to implement this in DB level. The DB schema is huge, we have 100s of tables spread across multiple modules. And the data size varies for each client. For some it might be 100s of rows in the tables. But for some it could be millions of rows. What is the best approach to implement Elastic DB in these kind of scenarios?
How do i design sharding in this case? Single tenant per shard or list of tenants? If I create a list of tenants per shard and adjacent tenants have lot of data and it will be overcrowded. How can we efficiently find a shard key to partition?
If I do single tenant per shard, Can I scale up single shard based on the data size?
Did anyone came across these kind of scenarios? Please help me with some sample links?
Thank you for your Help!