FINTECH ENGINEERING
Cloudflare Billing
Every subscription change, payment attempt, and invoice across Cloudflare's self-serve business runs through one engine. Three quarters of systematic work have proven the approach. Q2 closes the remaining gaps. This site maps the proof, the bridge, and the destination.
Stripe is an excellent payment processor. But stripe.Subscription owns the billing clock — when periods start, when invoices generate, when charges fire — and that coupling ripples through everything.
12 weeks of Jira data. The changes_calculator mutation path generates steady ticket volume — 100% blocked on engineering changes.
Accounts flagged as bad debt. Multiple dunning code paths race each other. 529 have contradictory state across stores.
The invoice shows $25.47. The real debt is $19.66, hidden in metadata. Two buttons, one confusing. Steady volume, 100% blocked on engineering.
Entitlements and billing state disagree. ~9,000 accounts in drift at any time. 73% of tickets blocked on engineering.
Full scoreboard — 18 tracked metrics, 12 weeks of ticket evidence, and an honest assessment of what's grounded versus what's asserted.
Three quarters of sustained execution. Each built on the last. The metrics prove the approach works.
Twelve weeks of ticket data across 19 tracked patterns. Quarterly metric trajectories with before-and-after numbers. What's improving, what's flat, what needs attention.
~360 tickets. Two workstreams. Zero by end of quarter. Plus one parallel track.
~360 engineering-attributable tickets per month. Two workstreams, zero by end of quarter. The pitch, the schedule, the burndown.
Credit notes replace metadata. The brain replaces racing handlers. Users pay what they see — one button, the invoice they recognize.
Confirm before commit on all 5 payment paths. Remove the payment method gate. One checkout surface for everything.
Domain purchases, renewals, and transfers flow through Unified Checkout. 3DS on purchases. Seeds the billing lifecycle domain.
Seven domains, clean boundaries. The vision isn't a rewrite — it's what the platform naturally becomes once Q2's foundations are in place.
Billing Lifecycle owns WHEN. Collection owns HOW. Dunning owns FAILURE. Credits own TRUTH. Customer owns WHO. Usage owns CONSUMPTION. Entitlements own ACCESS. Each Q2 workstream seeds one or more of these domains.
Three services, clear boundaries. The billing intelligence concentrates in the engine. The pipe feeds it events. The facade displays the result.
subscriptions-apiMutations, payment orchestration, dunning decisions, entitlement control, consequence orchestration.
billing-webhooks50K–100K Stripe events daily. Sub-1s median latency. 27 handlers. No decisions. No side effects.
Identity, payment method view, account status. Reads from the engine. No billing logic.
Three checkout systems, two HTTP clients, one API gateway. The implementation layer where billing meets the customer.
The approach works. The metrics prove it. Q2 finishes the foundation. The vision follows.