I built Backend Fieldguide, an interactive ecommerce backend course in Next.js, hosted on Vercel. One lab focuses on a checkout case that is easy to get wrong: a request times out, the provider succeeds, and the same success webhook is delivered twice.
Try the payment lab: https://backend-fieldguide.vercel.app/#labs/payments
Run steps 1–4, then select Repeat success event. The simulator shows the store and provider records separately. After the valid webhook, the store is Paid. Replaying the event leaves the paid-transition counter at one. You can also deliver an older failure event or an invalid signature. The lab uses synthetic data and runs in the browser without a payment provider or account.
I’d appreciate feedback on one point: does the lab make it clear why a timeout leaves the outcome unknown? Which failure case would you add next?
Source (Apache-2.0): https://github.com/harshitgupta31415/backend-fieldguide