Billing Provider Abstraction

Stripe placed behind Go interfaces. Direct Stripe API calls replaced with abstracted boundaries. Reduced coupling across the test suite. Foundation for future provider flexibility.

Canary Deployments

Argo Rollouts for both subs-api and billing-webhooks. Graduated rollout with automatic rollback on error rate spikes. No more all-or-nothing deploys to the payment critical path.

Bad Debt Observability

Prometheus metrics, subs_dunning table, Grafana dashboards. Who entered bad debt, why, what products. Account-state drift reduced from 13,000 to 500.

Sentry Noise Reduction

~15 false-positive alerts resolved across both services. Signal-to-noise ratio improved enough that real failures are visible again.

Payments Health Dashboard

Baseline metrics for the payment lifecycle. Entry/exit counters for bad debt. The instrumentation that makes data-driven decisions possible.

Renewal Reminder Pre-Cancel Warning Pay Now Email Auto-Cancel
Dunning Emails with Pay Now

Direct path to self-service debt resolution. Customer receives email with a link to resolve their bad debt without contacting support.

Auto-Cancellation on Bad Debt

Automatic subscription cancellation when dunning exhausts retries. Replaces manual support intervention.

Annual Renewal Reminders

31-day advance notification for annual subscribers approaching renewal. Reduces involuntary churn from expired payment methods.

Pre-Cancellation Email Templates

Warning emails before cancellation takes effect. Last-chance window to update payment method.