Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract core abstraction interfaces into Finbuckle.MultiTenant.Abstractions #923

Open
zarusz opened this issue Dec 28, 2024 · 0 comments
Open

Comments

@zarusz
Copy link

zarusz commented Dec 28, 2024

Feature Request: Separate NuGet Package for Abstractions in Finbuckle.MultiTenant

Problem

The current Finbuckle.MultiTenant NuGet package combines abstraction interfaces (e.g., IMultiTenantContextAccessor) with implementations for strategies and stores. This structure can be problematic for applications with layered architectures, where inner or lower layers (e.g., domain or application layers) require minimal dependencies.

Dragging the entire package, including implementations, into these layers violates the principle of limiting dependencies in lower-level layers.

Proposed Solution

Introduce a dedicated NuGet package (e.g., Finbuckle.MultiTenant.Abstractions) that contains only the abstraction interfaces. This would allow applications to reference abstractions in lower-level layers without pulling in the full set of implementations.

Benefits

  • Improved modularity: Applications can maintain cleaner architectural boundaries by separating abstractions from implementations.
  • Reduced dependencies: Only essential components are included in lower layers, reducing the risk of unintended dependencies.
  • Greater flexibility: Developers can use custom implementations of strategies and stores while still relying on standardized abstractions.

Scope

The new package should include:

  • IMultiTenantContextAccessor
  • Any other relevant abstraction interfaces

The existing Finbuckle.MultiTenant package should remain unchanged, continuing to bundle both abstractions and implementations for users who prefer the all-in-one approach.

Potential Impact

This change would be non-breaking for existing users but would provide an alternative path for those with stricter architectural requirements.

Thank you for considering this improvement!

@zarusz zarusz changed the title Extract core abstraction interfaces into Finbuckle.MultiTenant Extract core abstraction interfaces into Finbuckle.MultiTenant.Abstractions Dec 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant