Skip to content

Core concepts

Core concepts

Each module is fronted by a contract in its */Contracts namespace, bound in its service provider, and ships an in-memory default plus (where it needs durability) a database adapter and a dogfooded testing seam. These pages explain the concept and the invariants; the cookbook shows the code.

Pages

Page Module(s) Key ADRs
Metering & enforcement Metering 0004, 0005, 0008
Wallets & credits Wallet 0001, 0006
Ledger Ledger, Money 0002
Reconciliation Reconciliation 0003
Subscriptions & proration Subscription 0007, 0006
Entitlements Entitlement
Accounts Account
Catalog & pricing Catalog, Pricing, Seller
Quotes & invoicing Quote, Invoice 0007
Payments & dunning Payment
Refunds & chargebacks Refund
Reporting & SaaS metrics Reporting

The load-bearing split

Everything on these pages is an expression of the same decision: enforcement, metering truth, and money are three separate layers (see Architecture). Metering enforces and records; the ledger is the money authority; reconciliation trues one up from the other. No page's fast counter is ever the source of truth for money.