Skip to content

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.

See also