A SaaS team that sells several plans with quotas usually keeps the state behind them in several places: a sign-in service, a payment provider, a usage counter and its own code.
ShipRev is designed to hold that state on one customer record, in one process and one database, so that a change to one of the four is written in the same transaction as the others. Here is how the four are meant to fit together:
- Catalog and tiers: products, capabilities and the tiers that bundle them, published as versions.
- Subscriptions: subscription state, invoices and prepaid balances, connected to your own Stripe account.
- Metering: usage events recorded against each customer, with reservations that are confirmed or released.
- Identity: end users, the organizations they belong to, and the boundary between one customer's data and another's.
Changes to configuration, subscriptions and entitlements are designed to be recorded in an append-only change log, so that each change can be traced afterwards.
ShipRev has not been released. This post describes its design, not a product you can use today.