Skip to content

Service Boundaries

ResponsibilityRationale
User identity (user/account/session)Single source of truth across all products
OAuth Server (token issuance)Per-application audience isolation requires central signing
SSO Group managementControls which applications share login sessions
Organization model (B2B)Cross-product org structure
Product catalog (product/price)Commercial fact, scoped by app_id
Subscription/order recordsCommercial fact, isolated by app_id
Payment gateway integrationGateway vocabulary normalization
Outbound events (webhook to SaaS)Commercial fact change notification
ResponsibilityRationale
SKU-to-entitlement mappingProduct rules are heterogeneous (P6)
Usage metering / credit balancesHigh-frequency writes, per-product autonomy (P1)
Business data (tasks, files, AI calls)Pure business logic
Push tokens / device registrationRuntime session data, not shared across products
JWT signature verificationEach application verifies locally with saas-core JWKS

saas-core answers “who (user/org) bought what (SKU) in which application, whether it is currently valid, and when it expires.” It never answers “what capabilities this SKU grants” or “how much quota this user has left.”