Overview
RetryPolicy and CircuitBreaker provide resilient error handling with automatic retries and circuit breaker patterns.
Import
import { RetryPolicy, CircuitBreaker } from "bytekit";
// or
import { RetryPolicy } from "bytekit/retry-policy";
RetryConfig
Maximum number of retry attempts
Initial delay before first retry
Maximum delay between retries
Multiplier for exponential backoff
HTTP status codes that should trigger retry
CircuitBreakerConfig
Number of failures before opening circuit
Number of successes to close circuit
Time before attempting to close circuit
Usage with ApiClient
import { ApiClient } from "bytekit";
const api = new ApiClient({
baseUrl: "https://api.example.com",
retryPolicy: {
maxAttempts: 3,
initialDelayMs: 100,
maxDelayMs: 5000,
backoffMultiplier: 2,
retryableStatuses: [408, 429, 500, 502, 503, 504]
},
circuitBreaker: {
failureThreshold: 5,
successThreshold: 2,
resetTimeoutMs: 60000
}
});
// Requests will automatically retry on failure
const data = await api.get("/data");
Standalone Usage
import { RetryPolicy } from "bytekit";
const retryPolicy = new RetryPolicy({
maxAttempts: 3,
initialDelayMs: 100
});
await retryPolicy.execute(async () => {
const response = await fetch("/api/data");
if (!response.ok) throw new Error("Request failed");
return response.json();
});
See Also