Skip to main content
Roll out product credits in stages: configure, shadow, test, canary, monitor, and expand. Use separate sandbox customers and deterministic identifiers so every result is reproducible.

1. Validate configuration

Before mutation traffic:
  • confirm the Feature is classified for credit consumption;
  • verify one effective conversion rate for the intended Credit System;
  • verify plan grants and paid top-ups create separate balance sources;
  • verify Entity pool policy where Entity attribution is used; and
  • confirm the backend key has only the required permissions.

2. Shadow with advisory checks

Call usage.check() using representative production-shaped properties. Compare the exact-decimal metric amount, credits required, total availability, and projected source deductions with your expected fixtures. Advisory checks do not mutate balances and are safe for shadow evaluation.

3. Test idempotency and concurrency

In a sandbox customer, confirm:
  • same-key retries return one logical result;
  • the same key with a different payload is rejected;
  • concurrent requests cannot overdraw a source;
  • denied operations create no allocations or billing-event outbox row;
  • successful operations reconcile to one billing event; and
  • source expiry, top-ups, and subscription grants retain expected priority.
Use fixed timestamps and deterministic keys in repeatable test fixtures.

4. Canary one workflow

Enable one application workflow for a small set of non-production or internal customers. Monitor:
  • allow and denial rates;
  • request latency;
  • balance and operation history;
  • outbox publication delay and failures;
  • reconciliation status; and
  • support or application errors caused by changed denial behavior.

5. Audit acceptance

Use Nozle’s read-only credit audit tooling when available. At minimum, verify:
  • source balances equal initial amounts plus immutable allocations;
  • successful consumes have exact deductions and one durable outbox event;
  • denied consumes have no side effects;
  • paid top-ups and subscription grants materialize once; and
  • customer and organization ownership remain consistent.
Retain the audit output with release evidence.

6. Expand gradually

Expand by workflow, metric, or customer cohort only after the canary window is clean. Keep a dashboard for denial changes, reconciliation lag, and publication failures.

Rollback

Stop sending new usage.track() requests for the affected workflow and fall back to your previous authorization path. Do not delete ledger rows. If a committed operation must be reversed, use an explicit compensating operation so financial history remains auditable.