Tagged payments
2 pieces
- · 9 min read
Trust the Webhook, Not the Page: Why Payments Go Missing Between Three Systems That All Report Success
The site, the payment processor and your records each work correctly on their own, and the money that goes missing is lost in the gaps between them. Confirming on the landing page loses every payment where the browser never came back. The processor retries for up to three days, may deliver the same event twice, and guarantees no ordering, so the handler has to be idempotent and the state has to be derived from a ledger rather than incremented on arrival.
- · 11 min read
One Core, Many Campaigns: Why Forking the Working Flow Per Tenant Always Drifts
When a product runs many campaigns or tenants, copying the working flow per campaign is the default, and the copies drift. A reliability fix lands in whichever copy somebody was looking at when the bug was reported. Eventually the same inbound event is handled differently depending on which campaign produced it, and triage begins with asking which one. This covers one core plus configuration as data, the test for whether a difference is data or a capability, and how to tell you have already forked.