Architektura
Začátečník
Retry Pattern — opakování s rozumem
Správná implementace retry logiky. Exponential backoff, jitter a kdy NEretryovat.
Exponential Backoff s 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;
}
Kdy NEretryovat
- 4xx chyby (kromě 429)
- Non-idempotent operace bez idempotency klíče
- Autentizační chyby (401/403)
- Dlouho běžící operace
Shrnutí
Exponential backoff + jitter + max retries. Retryujte jen transientní chyby a idempotentní operace.
Potřebujete pomoct s implementací?
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.
Nezávazná konzultace