NBB provides building blocks for multi-tenant applications.
The package NBB.MultiTenancy.Abstractions
provides basic abstractions for working with tenants like the tenant data structure, context, repository or configuration options.
The package NBB.MultiTenancy.Identification
provides abstractions for tenant identification from the current context like the incoming HTTP request or the received messaging envelope.
The package NBB.MultiTenancy.Identification.Http
provides tenant identification strategies from HTTP requests.
The package NBB.MultiTenancy.AspNet
provides a messaging host middleware that identifies the tenant, loads the tenant information and sets it on the current tenancy context.
The NBB messaging infrastructure uses by default the "nbb-tenantID" messaging header to transport the tenant ID between publishers and subscribers. This behavior can be customized if needed.
The package NBB.MultiTenancy.Identification.Messaging
provides tenant identification strategies.
The package NBB.Messaging.MultiTenancy
provides functionality for message header injection and topic resolution in multi-tenant messaging environments. It also provides a messaging host middleware that identifies the tenant, loads the tenant information and sets it on the current tenancy context.
The package NBB.Data.EntityFramework.MultiTenancy
helps implementing a multi-tenant data access solution using Entity Framework.
Todo Tasks
is a sample multi-tenant service containing split across two containers one Web API and one worker. It uses Entyty Framework for data access.