One feature vocabulary
Plans, product surfaces, usage records, and runtime checks refer to the same feature definitions.
Entitlements keeps plans, feature access, usage counters, limits, and customer-specific overrides behind one source-owned service boundary.
Inspect the published API contractEntitlements domain
Commercial access boundary
Product boundary
Plan
The subscribed feature bundle
Feature
Boolean or limited capability
Usage
Recorded consumption by subject
Override
Customer-specific commercial rule
Product outcome
Billing tells you that a commercial event happened. Entitlements answers what the customer can use right now. Keeping that decision in one domain lets product, sales, and engineering change packaging without teaching every service a different plan model.
Plans, product surfaces, usage records, and runtime checks refer to the same feature definitions.
Customer-specific overrides and plan changes stay explicit instead of becoming permanent application branches.
Payment providers remain upstream integrations rather than the runtime source of product access decisions.
01 / Domain capabilities
Define the product capabilities that can be packaged and compose them into plans behind a stable domain contract.
Ask whether a company can use a feature before the product performs the protected action.
Record idempotent usage and resolve remaining access against the effective feature configuration.
Grant or change a feature for a specific subject without copying plan logic into application services.
02 / Product workflow
Create a stable product key and decide whether access is boolean, limited, or usage-aware.
Assign features and limits to the commercial package the customer selected.
Combine plan configuration, customer-specific overrides, and current usage.
Authorize the product action, then record usage with the documented idempotency behaviour.
03 / Technical depth
POST /entitlements.v1.EntitlementService/CheckLimit
Authorization: Bearer $TOKEN
Content-Type: application/json
{
"subject_id": "company_72",
"feature_key": "active_projects"
}Feature definitions, plans, subscriptions, overrides, and usage records remain queryable in the customer environment.
Billing systems can assign plans or trigger lifecycle changes without becoming the entitlement engine.
Reviewed integrations can react to plan, usage, and threshold changes without embedding provider logic.
04 / Where it fits
Starter, growth, and enterprise packages resolve through the same feature keys used by the product.
API calls, seats, projects, storage, or other product actions can be checked and recorded through one service.
A customer-specific feature or limit can override the base plan without creating a bespoke application fork.
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 entitlement domain
Published REST and Connect/gRPC contract
Customer-controlled plan and usage data
Custom feature models and billing adapters can be scoped
Entitlements architecture review
Everything you need to know about integrating and hosting this Launch Rail service.