Architektur Einsteiger
Retry Pattern – Wiederholung mit Verstand¶
RetryResilienceError Handling 3 min Lesezeit
Korrekte Implementierung von Retry-Logik. Exponential Backoff, Jitter und wann man NICHT wiederholen sollte.
Exponential Backoff mit Jitter¶
async function retryWithBackoff(fn, maxRetries = 3) {
for (let attempt = 0; attempt <= maxRetries; attempt++) {
try { return await fn(); }
catch (error) {
if (attempt === maxRetries) throw error;
if (!isTransient(error)) throw error;
const delay = Math.pow(2, attempt) * 1000 * (0.5 + Math.random() * 0.5);
await sleep(delay);
}
}
}
function isTransient(error) {
const s = error.response?.status;
return s === 429 || s === 503 || s >= 500;
}
Wann NICHT wiederholen¶
- 4xx-Fehler (ausser 429)
- Nicht-idempotente Operationen ohne Idempotency-Key
- Authentifizierungsfehler (401/403)
- Lang laufende Operationen
Zusammenfassung¶
Exponential Backoff + Jitter + Max Retries. Wiederholen Sie nur bei transienten Fehlern und idempotenten Operationen.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.