Subscription businesses don't usually break gracefully. They break at the worst possible moment - peak renewals, a pricing change, a partner integration - and the failure tends to cascade through reporting, retention and revenue recognition at once.

The good news: the patterns that cause these breaks are predictable. After working with subscription platforms ranging from a few thousand customers to several hundred thousand, the same handful of architectural decisions keep showing up as the root cause.

1. Treating subscriptions as a state, not an event stream

The most common mistake is modelling a subscription as a single row in a database that gets updated in place. Status goes from trialing to active to past_due, and so on. When something goes wrong, there's no audit trail - just a current state and a vague hunch about how it got there.

The fix is to treat every change as an immutable event. A subscription's status at any moment is derived by replaying events. This makes refunds, retroactive plan changes, dunning sequences and revenue recognition dramatically simpler.

"When billing logic and product entitlements live in different systems, they will drift. The only question is how long until it bites you."

2. Coupling billing to the rest of the product too tightly

The second pattern is the opposite problem: pushing entitlement checks into every corner of the product. When the billing system goes down, or a webhook is delayed, the product breaks for users who are paid up.

A small "entitlement service" sitting between billing and product features - cached, denormalised, and tolerant of source-of-truth lag - solves this. It costs a few hours to build and saves a 3am call later.

3. Underestimating dunning and recovery

Card failures account for a surprising fraction of churn - often more than dissatisfaction. The default Stripe or Recurly retry schedule is fine for small operations, but at scale it leaves money on the table. A small investment in smart retry timing, account-update integrations and gentle email sequences can reclaim several percent of revenue.

What good looks like

The subscription platforms that scale gracefully share three traits: event-sourced billing, a clear separation between billing and entitlement, and dunning treated as a product surface, not an afterthought. None of these are particularly novel - but together they're the difference between a billing system that grows with the business and one that quietly leaks revenue.

If you're hitting any of the patterns above and want a second pair of eyes, get in touch. We've seen most of them before.