Billing systems break when pricing logic is scattered across the frontend, backend, and payment provider. Treat entitlements as product state, store the billing provider event stream, and make every plan change idempotent before customers start asking for custom contracts.
Engineering
Designing billing systems that survive plan changes
cover image — architecture diagram