One tenant language
Companies, memberships, teams, and active context use the same identifiers and lifecycle.
Identity models companies, users, teams, memberships, invitations, sessions, and tenant context as one source-owned product domain.
Inspect the published API contractIdentity domain
Tenant-aware customer model
Product boundary
Company
Tenant boundary and lifecycle
Membership
Role, status, and active context
Team
Operational grouping inside a company
Invitation
Controlled path into the workspace
Product outcome
B2B products need more than login. They need a consistent answer for who belongs to which company, which team they act through, how they were invited, and which tenant context every downstream service should trust.
Companies, memberships, teams, and active context use the same identifiers and lifecycle.
Invitation and membership behaviour can match the product instead of a generic authentication screen.
Authz, Entitlements, Notifications, Audit Log, and product services receive consistent identity context.
01 / Domain capabilities
Model B2B tenants, company lifecycle, active workspace context, and users who belong to more than one customer organization.
Create, activate, suspend, and remove memberships behind one explicit domain boundary.
Issue, accept, revoke, and expire invitations without scattering onboarding logic across the product.
Group members for operational workflows and carry authenticated tenant context into downstream services.
02 / Product workflow
Establish the tenant boundary and the product identifiers other modules will reference.
Create a controlled invitation with intended company and membership context.
Accept the invitation, create the membership, and establish the usable workspace.
Provide tenant and actor context for authorization, entitlements, notifications, and audits.
03 / Technical depth
POST /identity.v1.MembershipService/InviteMember
Authorization: Bearer $TOKEN
Content-Type: application/json
{
"company_id": "company_72",
"email": "engineer@example.com",
"role": "MEMBER"
}Durable company, user, team, invitation, membership, session, and metadata records.
Identity lifecycle events can feed the other modules through the reviewed integration path.
Identity supplies actor and tenant context while Authz remains responsible for policy decisions.
04 / Where it fits
Each customer company manages members, invitations, teams, and workspace context through product-specific rules.
One person can belong to several companies and switch active context without duplicating the user identity.
A user can participate in buyer and seller organizations while each membership retains its own tenant context.
Ownership model
The source license, update term, support boundary, and customer-cloud responsibilities remain explicit. Missing domain work can be scoped as a custom module instead of hidden in a roadmap promise.
Licensed Go source for the identity domain
Published REST and Connect/gRPC contract
Customer-controlled identity data and cloud environment
Optional custom workflows for missing onboarding requirements
Identity architecture review
Everything you need to know about integrating and hosting this Launch Rail service.