Pád externí API shodí celý flow
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Selhání externí služby (např. účetní/fakturační API vrátí 503) shodí celý webhook nebo objednávkový flow — uživatel nedokončí akci.
Root cause
Sekce “Root cause”Externí volání je v hlavní cestě bez izolace. Když 3rd party spadne, výjimka propadne do core transakce.
Fix
Sekce “Fix”Volej best-effort, hlavní transakci dokonči i bez externí akce, retry řeš zvlášť:
try { await accounting.createInvoice(order); }catch (e) { logger.error('accounting 503, retry async', e); queue.enqueue('invoice', order.id); }// core flow pokračuje, webhook vrací 200Jak se tomu vyvarovat v jiných systémech
Sekce “Jak se tomu vyvarovat v jiných systémech”- Detection: seznam externích volání v kritické cestě bez try/catch.
- Anti-pattern: synchronní 3rd party volání blokující potvrzení objednávky.
- Lepší přístup: outbox/fronta + idempotentní retry; circuit breaker na opakované 503.