Use cases¶
Processor/retriever pattern: IUsageMetersProcessor / IUsageMetersRetriever (DefaultUsageMetersProcessor / DefaultUsageMetersRetriever).
Commands (write)¶
| Input | Operation |
|---|---|
RecordUsageInput |
Increment counter; emit usage-recorded + optional quota events |
RollUsageCounterInput |
Reset counter; clear threshold flags; emit counter-rolled |
EnsureUsageMeterProvisionedInput |
Idempotent create for tenant+dimension |
ApplyUsageQuotaInput |
Update quota from an entitlements sync |
ProvisionBaselineMetersInput |
Saga hook: provision baseline dimensions on tenant activation |
ProvisionSubscriptionMeterInput |
Saga hook: provision a dimension on subscription create |
Queries (read)¶
| Input | Operation |
|---|---|
GetUsageMeterByTenantDimensionInput |
Get required by tenant+dimension |
GetUsageMeterByIdInput |
Get required by id scoped to tenant |
Validators exist for all eight inputs (RecordUsageInputValidator ... GetUsageMeterByIdInputValidator).
What is metered¶
Arbitrary dimension strings per tenant (logical keys linked to Products Catalog features). Baseline dimensions hardcoded in DefaultUsageMetersProcessor: api.requests, storage.gb. Sample seed dimension: api.requests.