Azure / elastic-db-tools

Elastic database tools client library allows ADO.NET developers to create applications that implement and use the pattern known as database sharding in Azure SQL Database.
MIT License
144 stars 100 forks source link

Question: Is Project Still Maintained #221

Closed b1tzer0 closed 2 years ago

b1tzer0 commented 2 years ago

Is this project still being maintained? It is still referenced in the Microsoft Docs.

I want to use this in a new project, but if it is not being maintained then I might look elsewhere for a multi-tenant solution. Any recommendations?

scoriani commented 2 years ago

Hey @b1tzer0, while we don't have short term plans on improving this project, scale out and multi-tenant solutions are still very interesting areas for us, and it would be great if we could follow up offline on your specific requirements and use cases. If you're interested, please drop me an email (scoriani at microsoft.com) and I'll set up a quick call.

christophwille commented 2 years ago

Hi @scoriani - one item that immediately comes to mind is #220 with the related PR #217 (full .NET 6.0 target + Ms.D.SqlClient for modern authN methods)

scoriani commented 2 years ago

Thanks @christophwille, those are quite straightforward. I was more interested in the intersections between scaling out a database backend while implementing a multi-tenant solution. There are multiple angles to consider, from developer productivity to performance to security/isolation that play a critical role and wanted to double check if we're not missing anything important in addition to what has already been covered in guides like https://docs.microsoft.com/en-us/azure/azure-sql/database/saas-tenancy-app-design-patterns

vigouredelaruse commented 2 years ago

just noticing an multitenancy pattern on microsoft impedence mismatch between

for anyone observing microsoft employees observing this situation one can't help but point out a speculative outflow of implementers building multitenant solutions

scoriani commented 2 years ago

Hi @vigouredelaruse, would you mind clarifying a bit your comment above as I'm not sure I understand your point? On the technologies you mentioned, there are Microsoft 1st party and 3rd party ISVs that have built multitenant solutions with millions of tenants and databases but, if there's any valuable feedback you can provide that will be very appreciated.

vigouredelaruse commented 2 years ago

howdy @scoriani; not to have a spinal tap moment with the napkin here but take a look at some objects that would be nice to have in context in an asp.net family instance

image

it's incontrovertible that one can build a multitenant implementation using the technologies in scope of this discussion. the question that started this thread though implies a question: can one plan for robust support to further such efforts using the technologies in scope of this discussion

this https://docs.microsoft.com/nb-no/ef/core/miscellaneous/multitenancy tells you how to do it

what's missing is some handholding from a suite of boilerplate components that you can install as project starter templates in visual studio

note that the digram doesn't show other things in play, like ephemeral instances deployed in containers, or cloud environments

hopefully my spinal tap diagram gives an idea of what i'm having to cobble together right now to fulfill a research grant from the canadian federal govt - i need a cms where i can deploy a gis system that can easily interoperate with the tools used in the gis community and the official visual studio template to start such a thing just isn't there

the horseless cms

scoriani commented 2 years ago

Thanks @vigouredelaruse, much clearer now. This s bit outside of just the database layer (which is where I work) but I'll bring the feedback back to Visual Studio and .NET team to see if we can make it better.

vigouredelaruse commented 2 years ago

well yes there are some serious cross cutting concerns that prescribe the current situation. if anyone is interested i'm sure enough people are interested in database sharding and the surrounding issue to get a real nice diagram going :)

however never a hijacker of the thread be and so we will not do here. the original poster in several comments in this vein are looking for a statement regarding maintaining currency of the code in the repository linked to this issue list.

as am i

JonPSmith commented 1 year ago

Hi @vigouredelaruse,

I saw your comment and I though you might be interested in an article I just released called How to take an ASP.NET Core web site “Down for maintenance” where I describe a way to divert tenant users while the tenant is being split / merged by an admin user.

This describes how to create this feature in an ASP.NET Core app, with a emphasis on not allowing the feature from effecting the application's performance. I needed this feature for my AuthPermissions.AspNetCore library as to support multi-tenant sharding.

PS. You might also like to look at the previous article which talks about how to form the correct connection string in a multi-tenant application using sharding. Again this is very fast (and secure).