title: Choosing the ideal multi-tenancy architecture for an ASP.NET Core application
body: <p>I am currently working on an application that will be hosted on Azure. As it does not make sense to have an instance of it running for each customer (you'll see why), it's going to be a multi-tenancy solution.</p>
  
  <p>To be honest: I'm only starting to gather experience with web applications, so I apologize if the answer to my question is obvious.</p>
  
  <p>Question: Which multi-tenancy concept will be most beneficial for my application, considering the following assumptions:</p>
  
  <ul>
  <li>Many tenants (ideally hundreds or even more, we'll see...)</li>
  <li>consisting of few user accounts per tenant (&lt;5-10 in most cases, up to 200 for a hand full of tenants)</li>
  <li>dealing with mostly small amounts of data (&lt;100 entries in &lt;20 tables)</li>
  <li>changes in data occur a few times a day (approx. &lt;50 changes per
  user per day)</li>
  <li>The application needs to stay responsive (of course)</li>
  </ul>
  
  <p>My thoughts:</p>
  
  <ol>
  <li>Database-per-Tenant: Does not make sense as the DB won't be utilized
  much, therefore not cost effective at all</li>
  <li>Table-per-Tenant: Could be a good solution, guess this should scale
  pretty good?</li>
  <li>Tenant-column within the entities: Could be a problem with scaling, right? Could be
  better when using charding on the tenant id?</li>
  </ol>
  
  <p>I would really appreciate your help and some "shared experience" in order to choose the not-so-painful path.</p>