Architecture walkthrough
Follow one request from the storefront to the ledger, with the code and the conversations that explain each hop.
OrbitPay demo data. Connect your sources to generate this from your own repositories, Slack, and Linear.
Step 1 of 6
Evidence
checkout-api · src/routes/checkout.ts
router.post('/checkout', withIdempotency, async (req, res) => {
const intent = await payments.createIntent(req.body, {
idempotencyKey: req.idempotencyKey,
});
await queue.enqueue('payment.authorize', { intentId: intent.id });
res.status(202).json({ intentId: intent.id, status: 'processing' });
});checkout-api · src/payments/idempotency.ts
// Keys live for 24h. Anything replayed after that window creates a second // intent, which is exactly how PAY-209 produced duplicate charges. export const IDEMPOTENCY_TTL_SECONDS = 60 * 60 * 24;
PAY-209 · Duplicate payment events after idempotency expiry
Two merchants were charged twice when a client replayed a checkout request after the 24-hour idempotency window. Mitigated by alerting on duplicate intents; the underlying dedupe gap is still open.
Hover any claim to see its source type, title, timestamp, and confidence without leaving the sentence.